将多个 xml 个文件合并为一个大文件

Combine many xml files into one big file

我正在尝试将 Doxygen xml 输出发送到 graphviz,但我有超过 1000 多个 xml 文件要合并,我不知道如何在 windows 上执行此操作。一旦所有文件都在一个文件中,我就为 XSLT 处理安装了 Saxon,但我不知道如何合并这些文件。

据我所知,我的管道将是这样的:

Doxygen XML output -> Merge to single XML (how) -> XSLT process via Saxon -> Convert to DOT -> output via graphviz -> Party

Doxygen 已经输出 XML,我有一个在合并后使用 saxon 的命令 java -jar c:\saxon\saxon9he.jar -s:myinput.xml -xsl:myxslt.xslt -o:myoutput.xml,还有无穷无尽的 DOT 转换实用程序。 但是如何合并数百个 XML 文件?

我可以 运行 批处理 files/scripts 或 python 脚本或 windows 程序的命令作为解决方案。我正在寻找可以在连续管道中工作的东西,以便将来使用另一组可能有数百个文件。我的最终目标是打印出从 graphviz 创建的大图表作为 UML 映射的替代品,它很难找到解决方案(Doxygen 正在读取 C 代码)。

使用 XPath collection() 函数。您可以按照建议在管道中的单独步骤中进行合并,也可以将其合并到主样式表中。例如:

<xsl:variable name="merged">
  <xsl:copy-of select="collection('file:///c:/data/dir/?select=*.xml;recurse=yes')"/>
</xsl:variable>