0

我在文件夹中有很多 XML 文件 - 一本书的一页一个 XML。我需要将所有 XML 放在一个根 XML 文件中,然后使用 XSL 进行第一次转换以删除命名空间和不需要的属性(我有一个 XSL 样式表),保存新的 XML,然后使用另一个样式表再次转换它(我也准备好了)并保存结果文本文件。我在家里用一个 XML 文件在 Oxygen 中完成它,但我需要使这个过程自动化,用一些脚本运行它。我必须在 Windows 中工作,没有 Oxygen,客户没有任何软件,想自己制作。如何在不使用 !ENTITY 标签编写根 XML 的情况下将 XML 放在一起?我可以使用哪些软件工具(用于 XSL 转换)?如何为 Windows 制作这样的脚本?我用 Python 和一些 Java 编程。非常感谢。

4

2 回答 2

0

要将 XML 文件放在一起以便您可以将它们作为一个文件进行处理,一种选择是编写一个 cmd.exe 批处理脚本,该脚本会生成一个根 XML 文件,其中包含对所有 XML 文件的外部实体引用。

也许是这样的(假设没有扩展名的 XML 文件名是允许的实体名称):

@echo off
del root.xml 2> nul
(
    echo ^<!DOCTYPE root [
    for %%f in (*.xml) do (echo ^<!ENTITY %%~nf SYSTEM "%%f"^>)
    echo ]^>
    echo ^<root^>
    for %%f in (*.xml) do (echo ^&%%~nf;)
    echo ^</root^>
) > root.tmp
move root.tmp root.xml > nul

或者,您可以只使用一些 XML 标记输出文件名,然后使用document()XSLT 中的函数访问这些文件。

要从命令行运行 XSLT 转换,您可以使用例如msxsl.exe命令行实用程序,它是可能已经安装在您的系统上的 MSXML 库的前端。

msxsl root.xml stylesheet.xsl
于 2012-07-18T12:55:21.823 回答
0

请参阅 XSLT 规范以了解如何使用多个源文档

于 2012-07-18T10:02:13.480 回答