我已经使用所描述的here在命令行上成功地应用了XSL转换,但是这个示例似乎只适用于Java6或更早的版本。我一直看到一些示例告诉我应该使用com.sun.org.apache.xalan.internal.xslt.Process
作为cli,但当我尝试时,得到的结果却是:Error: Main method not found in class com.sun.org.apache.xalan.internal.xslt.Process
在Java 8中,有没有一种方法可以在命令行上应用XSL转换,或者他们只是简单地删除了它?
我在一个隔空的环境中工作,所以任何涉及下载任何东西的解决方案都不会起作用。我只能访问JDK和JRE。
发布于 2016-11-17 08:21:03
这是一种与您提到的方法不同的方法。除非出于某种原因被迫将XSLT预编译为Java类,否则也可以使用此方法。这种方法的好处是您的代码对于不同的JAXP XSLT实现是不可知的。
在加载XSLT并将其应用到XML文件的java代码中尝试执行以下操作。
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer(xsltAsDomSource);
transformer.transform(inputXmlSource, outputXmlResult);
像往常一样,将其作为jar或CLI中的类运行。JDK8将使用预打包的默认XSLT处理器,您只需说:
java -jar yourJarName.jar
但是,如果您希望使用特定的XSLT处理器进行更多的控制,可以使用"javax.xml.transform.TransformerFactory“参数指定您选择的实现类。请阅读JDK8 TransformerFactory API Doc以更好地理解。
https://stackoverflow.com/questions/40510748
复制相似问题