2008-10-20 32 views
2

我需要將一些xml模板應用於各種xml數據流(有時是文件),並且似乎有大量用於java的xml庫 - 這足以讓我們很難快速確定哪些庫仍然存在活躍,與其他活動的選項有何不同,以及選擇哪個標準時應考慮哪些標準。什麼xml/xslt庫(ies)目前適用於java?

你在java中使用什麼庫來處理xml,爲什麼它比替代方案更好?

回答

9

saxon是xslt和xquery解析器 - http://saxon.sourceforge.net/。這是由一位知名的xslt專家(他在xslt spec committe上撰寫的,他撰寫了書籍)構建的。有一個開源版本和一個商業版本。

它(xslt部分)得到不斷改進。
java中的其他xslt工具,當然是XALAN。

xml - 有這麼多。值得注意的(以及多年來測試)的人
1)JDK XML解析器 - DOM,SAX,STAX
2)的Xerces:Apache的
3)XOM - 如果DOM不爲你
工作4) JDOM - 早期流行的開源工具之一
5)JAXB - 內置於JDK 6現在
6)woodstox - 漂亮的XML處理器(讀/寫) - http://woodstox.codehaus.org/

2

您應該決定是否希望/能夠將整個文檔加載到內存中。如果它是一個大文件,你可能想看看sax parser。這適用於大型文檔。否則,您可能需要查看一個dom解析器。

0

我使用Xerces的對XML解析(DOM)和XSD驗證。

對於XSLT處理我用Xalan的,但它是3年前很多事情必須改變,在我的記憶很容易使用,功能強大(我用的是幾莫的輸入XML文件)

2

沒有一個已經提到了JAXP,這是用於XML處理的Java API。使用默認的xml庫實現出現了jdk的框。

1

Wrt「JAXP」:這只是創建DOM或SAX分析器實例的一個非常簡單的包裝器。 JDK捆綁的實現是Xerces。所以它本身不是一個替代品;它只是構建前面提到的「JDK解析器」的標準API。 對於XSLT,撒克遜嚴格優於Xalan;特徵,速度(2x)。 JAXB v2適合數據綁定,Stax(Woodstox)最適合流式傳輸。

0

我一直在使用StAX pull解析器來實現自定義內存和性能高效的POJO-2-xml序列化解決方案,並且非常滿意結果。它捆綁在JDK6中,所以你不需要任何額外的依賴來運行它。

相關問題