我想通过命令行执行来执行XSLT 2.0转换。我听说我可以使用Saxon库通过像shell命令这样的方式:
java -jar sax.jar -input foo.xml -xsl foo.xsl -output bar.xml
有人知道我如何实现这个目标吗?
顺便说一下,我不限于使用Java。任何其他的shell解决方案都可以。
我想通过命令行执行来执行XSLT 2.0转换。我听说我可以使用Saxon库通过像shell命令这样的方式:
java -jar sax.jar -input foo.xml -xsl foo.xsl -output bar.xml
有人知道我如何实现这个目标吗?
顺便说一下,我不限于使用Java。任何其他的shell解决方案都可以。
Saxon 的文档在线可用:http://www.saxonica.com/documentation/#!using-xsl/commandline。所以您需要:
java -jar saxon9he.jar -xsl:foo.xsl -s:foo.xml -o:bar.xml
更新:如果您的Java版本为11或更高版本,则请检查解决方案2和3,其中.internal.
不再可用。
我刚刚编写了this bash script,使用com.sun.org.apache.xalan.internal.xsltc.cmdline类来转换XML。在openjdk上运行良好。虽然不适合生产用例,但对于调试很有用。
P.S.从this blog得到了灵感
.internal.
东西一样,它会在一段时间后消失...所以你的bash脚本最终会在JDK 11中出现ClassNotFoundException。 - Ondra Žižka