首頁  >  文章  >  xml解析技術有哪些和區別

xml解析技術有哪些和區別

hzc
hzc原創
2020-07-03 16:39:063704瀏覽

xml解析技術有DOM,SAX,STAX,其區別在於DOM處理大型文件時其性能下降的非常厲害,SAX是事件驅動型的XML解析方式,它順序讀取XML文件,不需要一次全部裝載整個文件。

xml解析技術有哪些和區別

1.DOM產生並解析XML文件
        為 XML 文件的解析版本定義了一組介面。解析器讀入整個文檔,然後建立一個駐留記憶體的樹結構,然後程式碼就可以使用DOM
介面來操作這個樹結構。優點:整個文檔樹在記憶體中,方便操作;支援刪除、修改、重新排列等多種功能;缺點:將整個文件調入記憶體(包括無用的節點),浪費時間和空間;使用場合:一旦解析了文件也需多次存取這些資料;硬體資源充足(記憶體、CPU)。
2.SAX產生與解析XML文件
        為解決DOM的問題,出現了SAX。 SAX ,事件驅動。當解析器發現元素開始、元素結束、文字、文件的開始或結束等時,發送事件,程式設計師編寫回應這些事件的程式碼,保存資料。優點:不用事先調入整個文檔,佔用資
來源少;SAX解析器程式碼比DOM解析器程式碼小,適合Applet,下載。缺點:不是持久的;事件過後,若沒保存數據,那麼數據就丟了;無狀態性;從事件中​​只能得到文本,但不知該文本屬於哪個元素;使用場合:Applet;只需XML文檔的少量內容,很少回頭存取;機器記憶體少;
3.DOM4J產生和解析XML文件
        DOM4J 是非常非常優秀的Java XML
       使用的特點,同時它也是一個開放原始碼的軟體。如今你可以看到越來越多的 Java 軟體都在使用 DOM4J 來讀寫
        XML,特別值得一提的是連 Sun 的 JAXM 也正在使用 DOM4J。
4.JDOM產生與解析XML  
        為減少DOM、SAX的編碼量,出現了JDOM;優點:20-80原則,大幅減少了程式碼量。使用場合:要實現的功能簡單,如解析、創作等,但在底層,JDOM還是使用SAX(最常使用)、DOM、
        Xanan文件。
        XML文檔定義有幾種形式?它們之間有何本質差異?解析XML文件有哪幾種方式?
        答:a: 兩種形式dtd  schema,b: 本質區別:schema本身是xml的,可以被XML解析器解析(這也是從DTD上發展schema的根本目的),c:有DOM,SAX, STAX等
DOM:處理大型檔案時其效能下降的非常厲害。這個問題是由DOM的樹狀結構所造成的,這種結構佔用的記憶體較多,而且DOM必須在解析文件之前把整個文件裝入記憶體,適合對XML的
隨機存取
SAX:不現於DOM,SAX是事件驅動型的XML解析方式。它順序讀取XML文件,不需要一次全部裝載整個文件。當遇到像文件開頭,文檔結束,或標籤開頭與標籤結束時,它會觸發一個
事件,用戶通過在其回調事件中寫入處理代碼來處理XML文件,適合對XML的順序訪問

以上是xml解析技術有哪些和區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn