首頁>技術>

一、DOM解析

DOM的全稱是Document Object Model,也即文件物件模型。在應用程式中,基於DOM的XML分析器將一個XML文件轉換成一個物件模型的集合(通常稱DOM樹),應用程式正是透過對這個物件模型的操作,來實現對XML文件資料的操作。透過DOM介面,應用程式可以在任何時候訪問XML文件中的任何一部分資料,因此,這種利用DOM介面的機制也被稱作隨機訪問機制。

  DOM介面提供了一種透過分層物件模型來訪問XML文件資訊的方式,這些分層物件模型依據XML的文件結構形成了一棵節點樹。無論XML文件中所描述的是什麼型別的資訊,即便是製表資料、專案列表或一個文件,利用DOM所生成的模型都是節點樹的形式。也就是說,DOM強制使用樹模型來訪問XML文件中的資訊。由於XML本質上就是一種分層結構,所以這種描述方法是相當有效的。

  DOM樹所提供的隨機訪問方式給應用程式的開發帶來了很大的靈活性,它可以任意地控制整個XML文件中的內容。然而,由於DOM分析器把整個XML文件轉化成DOM樹放在了記憶體中,因此,當文件比較大或者結構比較複雜時,對記憶體的需求就比較高。而且,對於結構複雜的樹的遍歷也是一項耗時的操作。所以,DOM分析器對機器效能的要求比較高,實現效率不十分理想。不過,由於DOM分析器所採用的樹結構的思想與XML文件的結構相吻合,同時鑑於隨機訪問所帶來的方便,因此,DOM分析器還是有很廣泛的使用價值的。

二、SAX解析

SAX的全稱是Simple APIs for XML,也即XML簡單應用程式介面。與DOM不同,SAX提供的訪問模式是一種順序模式,這是一種快速讀寫XML資料的方式。當使用SAX分析器對XML文件進行分析時,會觸發一系列事件,並激活相應的事件處理函式,應用程式透過這些事件處理函式實現對XML文件的訪問,因而SAX介面也被稱作事件驅動介面。

三、JDOM解析

JDOM是一個開源專案,它基於樹型結構,利用純JAVA的技術對XML文件實現解析、生成、序列化以及多種操作。JDOM 直接為JAVA程式設計服務。它利用更為強有力的JAVA語言的諸多特性(方法過載、集合概念以及對映),把SAX和DOM的功能有效地結合起來。

JDOM使用具體類,而不使用介面,API大量使用了Collections。JDOM是用Java語言讀、寫、操作XML的新API函式。Jason Hunter 和 Brett McLaughlin公開發布了它的1.0版本。在直覺、簡單和高效的前提下,這些API函式被最大限度的最佳化。

四、DOM4J解析

 dom4j是一個Java的XML API,是微軟公司提供的用於解析xml的工具包,類似於jdom,用來讀寫XML檔案的。dom4j是一個非常非常優秀的Java XML API,具有效能優異、功能強大和簡單易用使用的特點,同時它也是一個開放原始碼的軟體,可以在SourceForge上找到它。

介紹完了4種XML的解析方式,我們再來看看這4種解析方式在Java中解析檔案的表現:

JDOM和DOM在效能測試時表現不佳,在測試10M文件時記憶體溢位。在小文件情況下還值得考慮使用DOM和JDOM。雖然JDOM的開發者已經說明他們期望在正式發行版前專注效能問題,但是從效能觀點來看,它確實沒有值得推薦之處。另外,DOM仍是一個非常好的選擇。DOM實現廣泛應用於多種程式語言。它還是許多其它與XML相關的標準的基礎,因為它正式獲得W3C推薦(與基於非標準的Java模型相對),所以在某些型別的專案中可能也需要它(如在JavaScript中使用DOM)。

SAX表現較好,這要依賴於它特定的解析方式-事件驅動。一個SAX檢測即將到來的XML流,但並沒有載入到記憶體(當然當XML流被讀入時,會有部分文件暫時隱藏在記憶體中)。

總的來說4種XML的解析方式分別為DOM解析、SAX解析、JDOM解析、DOM4J解析,對於相關的知識已做了詳細的介紹,更確切的說,XML的簡單易於在任何應用程式中讀/寫資料,這使XML很快成為資料交換的唯一公共語言,XML也是目前最流行的可擴充套件標記語言之一,或許你還沒有完全領略到XML語言的風采,可以觀看本站的XML教程一睹XML語言的風采吧。

14
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 想找完整的APP、小程式原始碼用於二次開發,可以看下這裡