Java 我需要一个简单的命令行程序来使用XSL样式表转换XML

Java 我需要一个简单的命令行程序来使用XSL样式表转换XML,java,python,xml,macos,xslt,Java,Python,Xml,Macos,Xslt,我在OSX雪豹(10.6.2)上,我可以安装任何我需要的东西。我更喜欢Python或Java解决方案。我在谷歌上搜索了很多关于编写我自己的程序的信息,但这只是一个快速而肮脏的实验,所以我不想花太多时间编写一堆代码来完成这项工作,我相信其他人已经做过了 现在这是离题了,不要用这个问题作为例子来说明为什么你的推荐请求是在主题上的,它不是。我很抱歉,但是我的Google Foo在4年前我问这个问题的那天让我失望了 使用。这是非常容易使用和非常快。它可以与XPath一起工作,并包含一个。如果我正确地假设

我在OSX雪豹(10.6.2)上,我可以安装任何我需要的东西。我更喜欢Python或Java解决方案。我在谷歌上搜索了很多关于编写我自己的程序的信息,但这只是一个快速而肮脏的实验,所以我不想花太多时间编写一堆代码来完成这项工作,我相信其他人已经做过了


现在这是离题了,不要用这个问题作为例子来说明为什么你的推荐请求是在主题上的,它不是。我很抱歉,但是我的Google Foo在4年前我问这个问题的那天让我失望了

使用。这是非常容易使用和非常快。它可以与XPath一起工作,并包含一个。

如果我正确地假设您希望提供样式表和XML文档,那么Xalan-J有一个命令行功能,您可以使用它来完成这项工作:

可通过以下方式调用:

java org.apache.xalan.xslt.Process -IN foo.xml -XSL foo.xsl -OUT foo.out
您见过(XML命令行工具集)吗?它执行大量与XML相关的查询转换,尤其是:

xml tr --help
XMLStarlet Toolkit: Transform XML document(s) using XSLT
Usage: xml tr [<options>] <xsl-file> {-p|-s <name>=<value>} [ <xml-file-or-uri> ... ]
where
   <xsl-file>      - main XSLT stylesheet for transformation
   <xml-file>      - input XML document file name (stdin is used if missing)
   <name>=<value>  - name and value of the parameter passed to XSLT processor
   -p              - parameter is XPATH expression ("'string'" to quote string)
   -s              - parameter is a string literal
xmltr——帮助
XMLStarlet工具包:使用XSLT转换XML文档
用法:xmltr[]{-p |-s=}[…]
哪里
-用于转换的主XSLT样式表
-输入XML文档文件名(如果缺少,则使用stdin)
=-传递给XSLT处理器的参数的名称和值
-p-参数是XPATH表达式(“'string'”引用字符串)
-s参数是字符串文字
进一步的文档。

我推荐,可以从命令行运行,如下所示:

java -jar /path/to/saxon.jar xmlfile xslfile
你试过“xsltproc”吗?它可能已经安装好了


多年来,我一直使用Saxon 6.5进行命令行转换。(Java,XSLT1)

如果本机解决方案不可用,这是一个很好的后备方案。

请参阅com.sun.org.apache.xalan.internal.xsltc.cmdline.Transform以了解其他解决方案。但我注意到名称空间与xalan处理相比有些奇怪。注意,行为可能是不标准的


另外,您也知道,内部java类不值得依赖。

您说得对,OSX Snow Leopard 10.6.2已经安装了这个类,所以它得到了复选标记<代码>xsltproc样式表文件输出到标准输出。太棒了。不幸的是,
xsltproc
在XSLT2.0中不起作用。添加-o参数以创建输出文件
java-jar-o:
Awesome,
saxon.jar
可用于XSLT2.0!