【筆記】利用java進行xml編程(IBM developerworks )

編程接口

Document Object Model (DOM,文檔對象模型),Level 2 Simple API for XML (SAX), Version 2.0 JDOM, Jason Hunter 和 Brett McLaughlin 創立的一種簡單 Java API Java API for XML Processing (JAXP)

說明:

使用 DOM、SAX 或 JDOM 處理 XML 文檔的內容。 如果使用 DOM 或 SAX,則使用 JAXP 創建解析器。 如果使用 JDOM,則 JDOM 庫爲您創建解析器。

【me】解析器分爲驗證和非驗證的,一般在確定xml有效且符合Document Type Definition (DTD,文檔類型定義)規則的情況下,爲了節省時間等,使用非驗證的解析器。

文檔對象模型(Document Object Model,DOM)

文檔對象模型(DOM)是正式的 W3C 推薦標準。它定義了一個接口,使程序能夠訪問和更新 XML 文檔的結構。如果一個 XML 解析器聲稱支持 DOM,就意味着它實現了該標準中定義的接口。

目前,有兩個級別的 DOM 是正式的推薦標準,被明智地命名爲 DOM Level 1 和 DOM Level 2。預計 DOM Level 3 將在 2004 年初正式發佈。本教程中所討論的 DOM 功能都是 DOM Level 1 的一部分,因此這些示例代碼可用於任何 DOM 解析器。

Simple API for XML (SAX)

Simple API for XML (SAX) API 是處理 XML 文檔內容的一種替代方法。它的設計目標是更少的內存佔用,但是把更多的工作交給了程序員。SAX 和 DOM 是互補的,有各自的適用環境。

作爲一個 事實上的 標準,SAX 最初由 David Megginson 開發,吸收了 Internet 上許多用戶的想法。完整的 SAX 標準請參閱 參考資料。您的解析器文檔可能也描述了 SAX 標準。

JDOM

儘管 SAX 和 DOM 提供了許多有用的功能,對於程序員而言有些任務還是太複雜了。延續開源社羣有需要就創建工具的歷史傳統,Java 技術專家 Jason Hunter 和 Brett McLaughlin 締造了 JDOM,這個 Java 庫極大簡化了 XML 文檔的處理。

和 DOM 類似,JDOM 也提供一個對象樹表示 XML 文檔,但是這些對象工作的方式對 Java 程序員更直觀。要記住,JDOM 在背後包含使用普通 SAX 或 DOM 解析器的適配器;JDOM 對所有主要的(和幾個次要的) Java XML 解析器都提供了適配器,因此不必擔心您的 Java XML 解析器是否支持 JDOM。JDOM 在幕後使用一個解析器不需要您的干涉。

如何選擇解析器

我將在後面對此詳加討論,一般說來以下情況應使用 DOM 解析器:

  • 需要詳細瞭解文檔的結構
  • 需要改變文檔的結構(也許您需要對元素排序、增加新的元素等等)
  • 需要多次引用解析的信息

進一步推廣,在以下情況中應使用 SAX 解析器:

  • 內存少(就是說您的 機器 沒有太多內存)
  • 只需要 XML 文檔中少量元素或屬性
  • 解析的信息只使用一次

最後看一看 JDOM API。JDOM 的內存使用比 DOM少,但是不如 SAX 好。此外,如果您希望進行驗證(本教程中不再展開討論),JDOM 要求您設置底層的解析器,JDOM 本身不進行驗證。就是說,如果 JDOM 能夠完成您所需要的所有功能,而且速度滿足您的需要,它可以簡化您的編碼工作。

結論:JDOM結合了以上幾種解析器,應用中簡化,推薦。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章