IBM認證DOM基礎知識

在開始使用 DOM 之前,瞭解它實際表示什麼是值得的。DOM Document 是以層次結構組織起來的節點,或信息片段,的集合。這種層次結構允許開發者瀏覽樹來查找特定信息。通常,分析結構需要在完成任何工作之前裝入整個文檔並且裝入層次結構。

IBM認證DOM基礎知識

由於 DOM 是基於信息的層次結構,因此它被稱爲是基於樹的。對於極其大的文檔,裝入整個文檔並對該文檔進行解析會很慢且佔用大量資源,所以要用其它方式來處理數據。一些基於事件的模型,如 Simple API for XML(XML培訓 編程語言培訓 )(SAX),是工作在數據流之上,在數據流經過時對其進行處理。基於事件的 API 消除了在內存中構建數據樹的需要,但它不允許開發者實際更改原始文檔中的數據。

另一方面,DOM 還提供了一個 API,該 API 允許開發者爲創建應用程序而在樹的任何地方添加、編輯、移動或除去節點。

  DOM 基本的節點類型

XML 中最常見的節點類型:

Node: DOM 基本的數據類型。

Element: 您將最主要處理的對象是 Element。

Attr: 代表一個元素的屬性。

Text: 一個 Element 或 Attr 的實際內容。

Document: 代表整個 XML 文檔。一個 Document 對象通常也被稱爲一棵 DOM 樹。

較不常見的節點類型:CData、註釋、處理指令和文檔片段:

CData:“字符數據”的'縮寫

註釋:註釋包含有關數據的信息,通常應用程序會忽略它們。

處理指令:PI 是專門針對應用程序的信息。

文檔片段:爲了形成良好的格式,文檔只能有一個根元素。有時,必須臨時創建幾組元素,這些元素不是滿足需求所必要的。

  文檔片段類似於這樣:

Silver Show Saddle, 16 inch

825.00

1

Premium Cinch

49.00

1

  解析文檔的三步過程

爲了使用 XML 文件中的信息,必須解析該文件以創建 Document 對象。

Document 對象是一個接口,所以不能直接實例化;相反,應用程序一般使用 factory。確切的過程隨實現的不同而不同,但想法是相同的。在示例 JAXP 環境中,解析文件是一個三步過程:

創建 DocumentBuilderFactory。該對象將創建 DocumentBuilder。

創建 DocumentBuilder。 DocumentBuilder 將實際進行解析以創建 Document 對象。

解析該文件以創建 Document 對象。

如果需要,在不必更改代碼的情況下,JAXP 允許插進不同的解析器。讓我們繼續,開始構建應用程序。

  DOM 常用方法

ocumentElement()

返回文檔的根(root)元素。

irstChild() and astChild()

返回給定 Node 的第一個子女。

extSibling() and reviousSibling()

這些方法返回下一個或前一個給定 Node 的同胞。

ttribute(attrName)

對給定的 Node,返回給定名稱的屬性。例如,如果您要獲得名爲 id 屬性的對象,可調用 getAttribute("id")。