簡體   English   中英

XOM 與 javax.xml.parsers

[英]XOM v/s javax.xml.parsers

我想閱讀簡單的 XML 文件。我在 Java 中找到了 Xml 的簡單方法

還有幾個可用的解析器只是想確保使用 XOM 解析器比 suns 解析器有什么優勢

有什么建議么?

與標准 W3C DOM 相比,XOM非常快。 如果那是您的首要任務,那么沒有比這更好的了。

然而,它仍然是一個 DOM 類型 API,所以它不是 memory 高效的。 它不是 SAX 或 STAX 的替代品。

您可能想查看有關最佳 XML 庫及其最佳 (XOM) 答案的問題; 很多關於 XOM 優勢的細節。 (如果有什么不清楚,請發表評論;Peter Štibraný 似乎對 XOM 了如指掌。)

如前所述,與標准 javax.xml 相比,XOM 在大多數任務中都非常快速和簡單。 例如,請參閱有關讀取 Java 中的 XML 文件的最簡單方法的問題中的這篇文章。我在那里收集了一些很好的示例,使 XOM 看起來相當不錯(而 javax.xml 相當笨拙)。 :-)

所以就我個人而言,在評估之后我開始喜歡 XOM(正如您在鏈接的帖子中看到的那樣); 對於任何新的 Java 項目,我很可能會選擇 XOM 來處理 XML。 我發現的唯一缺點是它直接支持流式傳輸 XML (與我來自的 dom4j 不同),但通過一個簡單的解決方法,它可以 stream 就好了。

您需要如何訪問您的數據?

如果是one-pass,那么memory中的樹就不用建了,可以用SAX (fast, simple)或者StAX (更快,沒那么簡單)。

如果你需要保留 memory 中的樹來導航, XOMJDOM都是不錯的選擇。 DOM最后的選擇,無論是 1、2 或 3 級,有或沒有擴展。

Xerces 是 Java 中包含的解析器(盡管您應該從 Apache 獲取更新版本,而不是使用與 Java 捆綁在一起的版本,即使在 6.0 中也是如此),也有一個名為XNI的流式本地接口。

如果您想在鏈中連接其他預制部件,通常 SAX 或 StAX 工作得很好,因為它們可能在 memory 中構建自己的 model。例如, Saxon XSLT/XQuery 引擎可與 DOM、SAX 或 StAX 一起工作,但是在內部構建TinyTree (默認)或 DOM(可選)。 DataDirect XQuery也可以與 SAX、StAX 或 DOM 一起使用,但更喜歡StAX。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM