在使用Saxon-B(版本9.1.0.8)和Java 1.4.2时需要帮助

时间:2011-08-11 19:21:15

标签: java xslt saxon

我需要使用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)

让我来到这里的步骤:

  1. 我按照此page
  2. 的链接下载了Saxon-B
  3. 我还从中找到了有关SAX2的依赖关系的一些信息 page因此获得了这一点。
  4. 在我的会话中设置CLASSPATH:
    set CLASSPATH=.;C:\Projects\new_saxon_download\saxon9.jar;C:\Projects\new_saxon_download\sax2r2.jar
  5. 尝试转变:
    java net.sf.saxon.Transform -s:source.xml -xsl:style.xsl -o:output.xml
  6. 然后我收到上面显示的错误。我尝试过多次谷歌搜索,但没有任何帮助。

    任何建议或解决方案都会非常有帮助。

1 个答案:

答案 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并将其添加到类路径中。