我想使用XSLT读取子目录中的所有XML文件,并将结果输出到单个XML文件,但我不确定如何执行转换。
如果源uri和输出uri都是目录,则下面的语法有效,但如果源uri是目录而输出uri是文件名则不起作用。
我认为uri中的空格不是问题。如果uris是引号(如果源和输出都是文件名或两个目录),下面的语法对我有用。
我正在使用Saxon HE处理器,但如果有必要,我愿意使用其他工具。
java -jar c:\ saxon \ saxon9he.jar -s:“C:\ Temp \ 2011 Valid XML”-o:“C:\ Temp \ LookupTables.xml”-xsl:“C:\ Temp \ LookupTables的.xsl“
答案 0 :(得分:1)
样式表需要考虑输入,例如使用collection
函数http://www.saxonica.com/documentation/index.html#!sourcedocs/collections
<xsl:template name="main">
<root>
<xsl:apply-templates select="collection('file:///C:Temp/dir?select=*.xml')/*"/>
</root>
</xsl:template>
然后使用-it:main
命令行选项运行Saxon,以从模板main
开始,该模板将拉入该目录中的所有*.xml
个文件。
当然,您需要确保模板处理并根据需要转换文件中的节点,但由于您没有提供任何XML结构示例,因此我们建议不要提供太多帮助。