我在文件夹中有很多XML文件 - 一本书的一页XML。我需要将所有XML放在一个根XML文件中,然后使用XSL进行第一次转换,以删除命名空间和不需要的属性(我有一个XSL样式表),保存新的XML,然后使用另一个样式表再次转换它(I已经准备好了)并保存结果文本文件。 我在家中使用一个XML文件在Oxygen中执行此操作,但我需要自动执行此过程,并使用某些脚本运行它。我必须在Windows中工作,没有氧气,客户没有任何软件,并希望自己制作。 如何在不使用带有!ENTITY标签的根XML的情况下将XML放在一起?我可以使用哪些软件工具(用于XSL转换)?如何为Windows制作这样的脚本? 我用Python编程,用Java编写一些。 非常感谢你。
答案 0 :(得分:0)
请参阅有关如何使用multiple source documents的XSLT规范。
答案 1 :(得分:0)
为了将XML文件放在一起以便您可以将它们作为一个文件处理,一个选项是编写一个cmd.exe批处理脚本,该脚本生成一个根XML实体引用所有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标记输出文件名,并使用XSLT中的document()
函数访问文件。
要从命令行运行XSLT转换,您可以使用例如msxsl.exe命令行实用程序,它是可能已安装在系统上的MSXML库的前端。
msxsl root.xml stylesheet.xsl