如何使用SAXON与XSLT合并多个结构统一的XML基准文件
合并多个基准测试XML文件操作指南
1. 编写XSLT合并脚本
新建名为merge_benchmarks.xsl的文件,写入以下代码:
<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <!-- 待合并XML文件的路径匹配规则,可执行时动态修改 --> <xsl:param name="benchmark_path" select="'./benchmarks/*.xml'"/> <!-- 执行入口,无需额外输入源文件 --> <xsl:template name="main"> <benchmark> <!-- 批量读取所有匹配的XML文件,提取全部xpath元素及其子节点 --> <xsl:copy-of select="collection($benchmark_path)//xpath"/> </benchmark> </xsl:template> </xsl:stylesheet>
2. 执行Saxon命令完成合并
如果你使用的是Saxon命令行工具,直接运行以下命令即可:
java -jar saxon-he-12.4.jar -xsl:merge_benchmarks.xsl -it:main -o:merged_benchmark.xml
如果你的基准测试XML文件存放在自定义目录,可通过参数动态指定路径:
java -jar saxon-he-12.4.jar -xsl:merge_benchmarks.xsl -it:main -o:merged_benchmark.xml benchmark_path="./your_dir/*.xml"
注意事项
- 执行前请确认所有待合并的XML文件格式合法,你示例中的根标签闭合拼写有误(写为了
benchamark),实际使用时需确保所有文件的根标签为正确的benchmark - Saxon 10及以上版本均支持上述XSLT 3.0语法,可直接使用免费的Saxon HE版本
- 如果你的XML文件带有自定义命名空间,需在XSLT头部声明对应命名空间后,调整xpath选择路径即可
内容的提问来源于stack exchange,提问作者Usr654789
相关产品推荐
相关产品推荐

