XML DOM - 訪問節點
通過 DOM,您能夠訪問 XML 文檔中的每個節點。

嘗試一下 - 實例
下麵的實例使用 XML 檔 books.xml。
函數 loadXMLDoc(),位於外部 JavaScript 中,用於加載 XML 檔。
本例使用 getElementsByTagname() 方法來獲取 "books.xml" 中的第三個 <title> 元素。
本例使用 length 屬性來遍曆 "books.xml" 中的所有 <title> 元素。
本例使用 nodeType 屬性來獲取 "books.xml" 中根元素的節點類型。
本例使用 nodeType 屬性來處理 "books.xml" 中的元素節點。
本例使用 nodeType 屬性和 nextSibling 屬性來處理 "books.xml" 中的元素節點。
訪問節點
您可以通過三種方式來訪問節點:
1. 通過使用 getElementsByTagName() 方法。
2. 通過迴圈(遍曆)節點樹。
3. 通過利用節點的關係在節點樹中導航。
getElementsByTagName() 方法
getElementsByTagName() 返回擁有指定標籤名的所有元素。
語法
實例
下麵的實例返回 x 元素下的所有 <title> 元素:
請注意,上面的實例僅返回 x 節點下的 <title> 元素。如需返回 XML 文檔中的所有 <title> 元素,請使用:
在這裏,xmlDoc 就是文檔本身(文檔節點)。
DOM 節點列表(Node List)
getElementsByTagName() 方法返回節點列表。節點列表是節點的數組。
下麵的代碼使用 loadXMLDoc() 把 "books.xml" 載入 xmlDoc 中,然後在變數 x 中存儲 <title> 節點的一個列表:
x=xmlDoc.getElementsByTagName("title");
可通過索引號訪問 x 中的 <title> 元素。如需訪問第三個 <title>,您可以編寫:
注意:該索引從 0 開始。
在本教學後面的章節中,您將學習更多有關節點列表(Node List)的知識。
DOM 節點列表長度(Node List Length)
length 屬性定義節點列表的長度(即節點的數量)。
您可以通過使用 length 屬性來遍曆節點列表:
實例
實例解釋:
- 使用 loadXMLDoc() 把 "books.xml" 載入 xmlDoc 中
- 獲取所有 <title> 元素節點
- 輸出每個 <title> 元素的文本節點的值
節點類型(Node Types)
XML 文檔的 documentElement 屬性是根節點。
節點的 nodeName 屬性是節點的名稱。
節點的 nodeType 屬性是節點的類型。
您將在本教學的下一章中學習更多有關節點屬性的知識。
遍曆節點
下麵的代碼遍曆根節點的子節點,同時也是元素節點:
實例
實例解釋:
- 使用 loadXMLDoc() 把 "books.xml" 載入 xmlDoc 中
- 獲取根元素的子節點
- 檢查每個子節點的節點類型。如果節點類型是 "1",則是元素節點
- 如果是元素節點,則輸出節點的名稱
導航節點的關係
下麵的代碼使用節點關係導航節點樹:
實例
- 使用 loadXMLDoc() 把 "books.xml" 載入 xmlDoc 中
- 獲取第一個 book 元素的子節點
- 把 "y" 變數設置為第一個 book 元素的第一個子節點
- 對於每個子節點(第一個子節點從 "y" 開始),檢查節點類型,如果節點類型為 "1",則是元素節點
- 如果是元素節點,則輸出該節點的名稱
- 把 "y" 變數設置為下一個同級節點,並再次運行迴圈