我需要使用XSLT将一个XML文档转换为另一个XML文档(现在从命令行)。我必须使用Java 1.4.2。基于那个推荐使用Saxon并提供XSLT的人。看起来应该很简单,但我迷失了 我更多地来自.NET环境,并且使用过XML和XSLT,但没有使用Saxon,而且我在Java中并不那么强大。
首先让我解释一下我的问题是什么,到目前为止我尝试了什么:
错误:
C:\Projects\new_saxon_download>java net.sf.saxon.Transform -s:source.xml -xsl:style.xsl -o:output.xml
Exception in thread "main" java.lang.NoClassDefFoundError: org/xml/sax/ext/DefaultHandler2
at net.sf.saxon.Configuration.(Configuration.java:2047) at net.sf.saxon.Transform.setFactoryConfiguration(Transform.java:81) at net.sf.saxon.Transform.doTransform(Transform.java:133) at net.sf.saxon.Transform.main(Transform.java:66)
让我来到这里的步骤:
set CLASSPATH=.;C:\Projects\new_saxon_download\saxon9.jar;C:\Projects\new_saxon_download\sax2r2.jar
java net.sf.saxon.Transform -s:source.xml -xsl:style.xsl -o:output.xml
然后我收到上面显示的错误。我尝试过多次谷歌搜索,但没有任何帮助。
任何建议或解决方案都会非常有帮助。
答案 0 :(得分:2)
GOT IT - 关于如何修复dependendcy问题的描述是废话(抱歉)。
此文件sax2r2.jar
不是您必须添加到类路径的文件。它包含另一个jar(sax.jar
),这是你实际需要的库。只需提取sax2r2.jar并将sax.jar
放在类路径上,然后就可以了。
尝试一下:apache xml-commons包含xml-api.jar
。我不知道这是否适用于java 1.4.12,但值得一试。
Binary releases can be found here。下载一个xml-commons-external归档文件,解压缩xml-api.jar并将其添加到类路径中。