2010-10-07 37 views
0

我想使用saxon进行xpath查询,但我不知道要加载多个xml文件。如何使用saxon加载多个xml文件

我试图使用撒克逊从Windows命令行

我撒克逊手册中读到,我可以用命令:

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

,但我不知道如何加载多个XML文件,而不仅仅是一个

编辑: 我甲肝e很多xml文件myDataFile1.xml,myDataFile2.xml,myDataFile3.xml ...我想运行查询以alla这些文件所以我想加载所有的所有文件,然后查询它们(我不想查询每一个单个文件,然后连接结果)

+0

你想通过多个来源运行查询吗? – 2010-10-07 14:42:06

+0

我有很多的XML文件 g1.xml g2.xml g3.xml ... ,我想运行查询到阿拉这些文件 所以我要加载所有的所有文件,然后对它们进行查询 (我不想查询每个文件,然后连接结果) – Tony 2010-10-07 14:49:23

回答

6

使用标准XPath 2.0函数collection()

的具体撒克逊实施collection()的文档here

您可以使用标准的XPath 2.x的collection()功能,as implemented in Saxon 9.x

撒克逊实现允许在函数的字符串-URI参数中使用的搜索模式,因此你可以在目录的路径后面指定任何以report_开头的文件名的模式,然后再有另外两个字符,然后以.xml结尾。

该XPath表达式:

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

选择驻留在c:\与名称的文件开始report_然后具有0个或多个字符的每个XML文档的文档节点,然后以.xml结尾。