使用 SAXON 和 XSLT 合并 XML 个文件
Merging XML Files Using SAXON and XSLT
我是 XSLT
和 SAXON
的新手,我希望完成以下任务:
我有一长串 XML
文件代表一些基准,所有结构如下:
<benchmark>
<xpath>
<query>xxxxx</query>
<ast depth="6" size="11">
...
</ast>
<schemas>
<validation schema="xquery-3.0.xsd" valid="yes"/>
...
</schemas>
</xpath>
<xpath>
<query>yyyyy</query>
<ast depth="6" size="11">
...
</ast>
<schemas>
<validation schema="xquery-3.0.xsd" valid="yes"/>
...
</schemas>
</xpath>
</benchamark>
我只想将它们全部合并到一个 XML
文件中,该文件包含一个根 benchmark
节点下所有文件的所有内容(所有 <xpath>
元素及其子元素)。
最简单的方法是使用命名模板开始转换,不输入 XML,但使用 collection
函数从目录中提取所有数据:
<xsl:template name="main">
<benchmark>
<xsl:copy-of select="collection('../../benchmark/?select=*xml')/*/node()"/>
</benchmark>
</xsl:template>
然后使用选项 -xsl:mergefiles.xsl -it:main -o:merged-file.xml
.
调用 Saxon
我是 XSLT
和 SAXON
的新手,我希望完成以下任务:
我有一长串 XML
文件代表一些基准,所有结构如下:
<benchmark>
<xpath>
<query>xxxxx</query>
<ast depth="6" size="11">
...
</ast>
<schemas>
<validation schema="xquery-3.0.xsd" valid="yes"/>
...
</schemas>
</xpath>
<xpath>
<query>yyyyy</query>
<ast depth="6" size="11">
...
</ast>
<schemas>
<validation schema="xquery-3.0.xsd" valid="yes"/>
...
</schemas>
</xpath>
</benchamark>
我只想将它们全部合并到一个 XML
文件中,该文件包含一个根 benchmark
节点下所有文件的所有内容(所有 <xpath>
元素及其子元素)。
最简单的方法是使用命名模板开始转换,不输入 XML,但使用 collection
函数从目录中提取所有数据:
<xsl:template name="main">
<benchmark>
<xsl:copy-of select="collection('../../benchmark/?select=*xml')/*/node()"/>
</benchmark>
</xsl:template>
然后使用选项 -xsl:mergefiles.xsl -it:main -o:merged-file.xml
.