2

我想使用 XSLT 读取子目录中的所有 XML 文件并将结果输出到单个 XML 文件,但我不确定如何执行转换。

如果源 uri 和输出 uri 都是目录,则下面的语法有效,但如果源 uri 是目录而输出 uri 是文件名,则它不起作用。

我认为 uri 中的空格不是问题。下面的语法对我有用,前提是 uris 用引号引起来(并且源和输出都是文件名或两个目录)。

我正在使用 Saxon HE 处理器,但如有必要,我愿意使用其他工具。

java -jar c:\saxon\saxon9he.jar -s:"C:\Temp\2011 有效 XML" -o:"C:\Temp\LookupTables.xml" -xsl:"C:\Temp\LookupTables.xsl"

4

1 回答 1

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 结构示例,因此我们无法提供太多帮助。

于 2013-05-26T09:15:07.947 回答