2010-10-07 27 views
0

Je veux utiliser saxon pour les requêtes xpath mais je ne sais pas charger plusieurs fichiers xml.comment charger plusieurs fichiers xml avec saxon

Je suis en train d'utiliser avec la ligne de Saxonne commande des fenêtres

J'ai lu dans le manuel que je peux Saxonne utiliser la commande:

Query.exe -s: myDataFile.xml -q: myQueryFile -o: myOutputFile

mais je ne sais pas comment charger plusieurs fichiers xml et pas seulement un

modifier: Je VHA e nombreux fichiers xml myDataFile1.xml, myDataFile2.xml, myDataFile3.xml ... et je veux exécuter la requête à alla ces fichiers Donc, je veux charger tous les fichiers, puis les interroger (je ne veux pas interroger tous les fichier unique, puis concaténer les résultats)

+0

Souhaitez-vous exécuter une requête via plusieurs sources? –

+0

J'ai beaucoup de fichiers xml de g1.xml g2.xml g3.xml ... et je veux exécuter la requête à ALLA ces fichiers donc je veux charger tous les fichiers et les interroger (Je ne veux pas interroger chaque fichier, puis concaténer les résultats) – Tony

Répondre

6

Utilisez la fonction XPath 2.0 standard collection().

La documentation pour la mise en œuvre spécifique-saxonne de collection() est here.

Vous pouvez utiliser la norme XPath 2.x collection() fonction, as implemented in Saxon 9.x

La mise en œuvre saxonne permet un modèle de recherche à utiliser dans l'argument chaîne-Uri de la fonction, ainsi vous pourrez peut-être pour spécifier après le chemin du répertoire un modèle pour n'importe quel nom de fichier commençant par report_ puis ayant deux autres caractères, puis se terminant par .xml.

Exemple:

Cette expression XPath:

collection('file:///c:/?select=report_*.xml') 

sélectionne les documents noeuds de chaque document XML qui réside dans c:\ dans un fichier avec un nom commençant par report_ puis d'avoir un 0 ou plusieurs caractères , puis se terminant par .xml.