xml - 使用 SAXON 和 XSLT 合并 XML 文件
问题描述
我是新手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
文件包含一个根节点下所有文件的所有内容(所有<xpath>
元素及其子元素)benchmark
。
解决方案
最简单的方法是使用命名模板开始转换,不输入 XML,而是使用以下collection
函数从目录中提取所有数据:
<xsl:template name="main">
<benchmark>
<xsl:copy-of select="collection('../../benchmark/?select=*xml')/*/node()"/>
</benchmark>
</xsl:template>
然后使用 options 调用 Saxon -xsl:mergefiles.xsl -it:main -o:merged-file.xml
。
推荐阅读
- pipe - 找不到管道“翻译” Ionic 4
- python - 使用系统 python 通过 GitBash 创建的 Windows virtualenv?
- python - python \ 在一个函数中,用法?
- javascript - 更新 draw2d UI 以匹配选择
- postgresql - 连接表时如何避免子查询?
- google-apps-script - 在列范围内查找第一个空单元格
- r - 将 R 结果导出为 CSV 或制表符分隔格式以在流苏中使用
- netlogo - Conways 社区的扩展社区未在自定义代理集中读取
- node.js - 在我的反应 api 中发送标头后无法设置标头
- azure - 使用 Azure Active Directory 身份验证在 Linux 上重新启动 Azure 应用服务会重置 /.auth/me/