2011-08-11 47 views
2

我需要一個XML文檔轉換成另一種使用XSLT幫助(現在命令行)。我必須使用Java 1.4.2。基於那個推薦使用Saxon並提供了XSLT的人。看起來很簡單,它應該工作,但我迷路了。
我來自一個.NET環境,並且已經使用XML和XSLT,但與Saxon無法合作,並且我在Java中並沒有那麼強大。需要使用撒克遜-B(9.1.0.8版本)與Java 1.4.2

讓我解釋我的問題是什麼,是我迄今試圖啓動:
的錯誤:
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. 我下載撒克遜-B按照從這個page
  2. 的鏈接我也發現一個依賴形成的一些信息y關於SAX2從這個 page並因此獲得。
  3. 設置CLASSPATH在我的會議:
    set CLASSPATH=.;C:\Projects\new_saxon_download\saxon9.jar;C:\Projects\new_saxon_download\sax2r2.jar
  4. 嘗試轉型:
    java net.sf.saxon.Transform -s:source.xml -xsl:style.xsl -o:output.xml

然後我得到上述錯誤。我嘗試了多次谷歌搜索,但沒有任何幫助。

任何意見或解決方案將是非常有益的。

+0

您是否嘗試在您的java命令行中添加'-cp'? ('java -cp%CLASSPATH%net.sf.saxon.Transform -s:source.xml -xsl:style.xsl -o:output.xml') –

+0

@DevNull嘗試了你的建議,但仍然是同樣的錯誤。 –

回答

2

了它 - 關於如何解決dependendcy問題的描述是胡扯(對不起)。

此文件sax2r2.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並將其添加到您的類路徑中。

+0

您是否知道sax.jar的正確位置,該位置適用於此版本?我沒有那個文件。 –

+0

正如我所說的,它在** sax2r2.jar裏面。 * jar *是一個簡單的zip壓縮文件,只需提取(解壓縮)就可以找到它! –

+0

Andreas_D - 這只是Java版本的問題嗎?使用saxon9時,我沒有任何依賴關係問題。 –