有没有可以在命令行中使用的XSLT处理工具?

57
我希望通过一个XSLT文件和XSLT处理工具将一个XML文件转换成修改后的XML文件。
例如:xsltprocess.exe -src a.xml -dest b.xml -xslt c.xslt 有人能帮我吗?

1
如果您没有特殊要求,您可以直接在谷歌上搜索“xslt命令行”。 - Ivan Nevostruev
5
Xalan、Saxon、msxsl、xsltproc... 这些是用于执行XSLT转换的软件工具。 - Emiliano Poggi
我找到了XMLStarlet。 - Cheers and hth. - Alf
6
我会指出,我通过谷歌搜索“命令行运行XSLT”才来到这里。 - Textcape
我也认为这是一个非常合理的问题!就像我的前任一样,我也是通过搜索到达这里的。我不明白为什么这不符合指南... - mmo
8个回答

29

13
如果OP需要Windows系统,还可以从Microsoft官网下载一个:http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=21714。 - Ivan Nevostruev
1
@Ivan 从你的链接来看,它似乎有点过时了,但可能有更新版本。Saxon 在 Windows 上也可以正常工作(只需要 Java)。 - Mathias Schwarz
@Ivan Saxon 也在 Windows 上工作。此外,他使用的是 XSLT 2.0 而非 XSLT 1.0(msxsl)。 - Emiliano Poggi
+1 Saxon最好的一点是它是一个XSLT 2.0处理器(以及一个XQuery 1.0处理器)。它也可用于.NET。 - Daniel Haley
我知道msxml.exe,但我认为它已经过时了。微软不再支持XSLT处理器了吗? - sjuu
@sjuu:也许他们不会。Saxon 在 Windows 上也可以很好地完成工作。 - Mathias Schwarz

26

微软公司提供了一个简单的命令行工具,它包装了他们的XML解析器 - http://www.microsoft.com/en-us/download/details.aspx?id=21714

正如@Mathias所说,它只支持XSL 1.0,而Saxon支持XSL 2.0。

要运行从给定URL下载的转换器,请运行以下命令:

msxsl.exe backEnd.xml inspectcode.xslt -o backEnd.html

这将使用xslt文件将xml文件转换为html格式的输出文件。


如果我没记错的话,通过.NET你可以使用XSL 2.0 - 我想在https://github.com/Zoomicon/tranXform/tree/master/web/tools/XSLTransform上支持它(源代码目前仅以zip形式提供)- 我想诀窍是使用Mvp.Xml.dll(在bin子文件夹中可用)。 - George Birbilis
链接已经失效,截至2021年6月。 - m1m1k
new github link 看起来微软不再支持.exe命令行工具,而是使用.js文件代替。 MS XML FAQ - m1m1k

7

你可以使用AltovaXML XSLT 1.0/2.0引擎(还支持格式良好性和有效性检查)。有免费的社区版,其中包含直接(无需Java)命令行界面,例如:

AltovaXML.exe -xslt2 stylesheet.xsl -in input.xml -out output.xml

查看 AltovaXML.chm 帮助文件以获取使用方法。


1
看起来AltovaXML已经停止了。 :( - RickNZ
Altova现在称其XSLT处理器为RaptorXML。 - Michael Kay
2
没有更多的免费社区版本。 - wasmachien

7

2
你的示例 # ... 表明你没有完全阅读问题。它被标记为 windows。你的 Un*x 管理员命令提示符在这里不合适。提供的链接指向 Gnome 网站。那里提到的 Windows 二进制文件远非“最简单”的。这很困难,所以我永远不会将其推荐为“最简单”的方法。 - harper

3

ftp://xmlsoft.org/libxml2/

Win32目录下有很多好东西,除了用于命令行的预编译二进制文件。

我没有直接链接到该目录,因为项目根目录有一套丰富的工具,适合每个人的口味 :)


1

目前有许多可用的XSLT 1.0处理器,以及少数XSLT 2.0处理器。据我所知,每一个处理器都可以在Windows上运行,并且可以从命令行调用。如果您的问题是在它们之间进行选择,那么您需要告诉我们更多关于您的需求和限制。


1
可能应该是一条注释。不太确定为什么在6年后会被标记进行审核... - DiskJunky
这是对一个相当糟糕的问题的完美回答。(人们没有更有用的事情可做吗?) - Michael Kay
说实话?同意。我通常会在这些上点击“看起来不错”,但是年龄很突出。 - DiskJunky

1

new github link新的 GitHub 链接 - m1m1k
实际上,上述存储库中的网站位于https://zoomicon.github.io/tranXform/。 - George Birbilis

0

它只有试用版。我已经下载了它,但无法工作。还要求下载另一个版本,哈哈。不推荐使用这个工具。 - nZeus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接