與DOM,你可以在XML文檔中訪問的每個節點。
試一試 - 示例
下面的例子使用XML文件的Books.xml 。
使用節點列表中的索引號訪問一個節點
使用getElementsByTagName()方法來獲取第三<title>的元素"books.xml"
通過使用length屬性節點環
通過所有使用length屬性來循環<title>中的元素"books.xml"
見元素的節點類別
使用nodeType屬性來獲取根元素的節點類型在"books.xml" 。
通過元素節點環
使用nodeType屬性來只處理元素節點中"books.xml"
通過使用節點的關係元素節點環
使用nodeType屬性和nextSibling屬性來處理元素節點中"books.xml"
訪問節點
您可以通過三種方式訪問一個節點:
1.通過使用getElementsByTagName()方法
2.通過循環(traversing)節點樹。
3.通過導航節點樹,使用節點之間的關係。
的getElementsByTagName()方法
的getElementsByTagName()返回與指定標籤名的所有元素。
句法
node.getElementsByTagName("tagname");
例
下面的例子返回所有<title>的X元素下的元素:
x.getElementsByTagName("title");
請注意,只有返回上面的例子中<title>的X節點下的元素。 若要返回所有<title>在XML文檔中使用的元素:
xmlDoc.getElementsByTagName("title");
其中,xmlDoc中的文檔本身(document node) 。
DOM節點列表
的getElementsByTagName()方法返回一個節點列表。 節點列表是節點的數組。
x = xmlDoc.getElementsByTagName("title");
在<title> x中的元素可以通過索引號來訪問。 要訪問第三個<title>你可以寫::
y = x[2];
Note:該指數從0開始。
您將了解更多有關節點列表在本教程稍後的章節。
DOM節點列表長度
長度屬性定義的一個節點列表的長度(the number of nodes) 。
您可以通過使用length屬性通過節點列表循環:
例
var
x = xmlDoc.getElementsByTagName("title");
for (i = 0; i <x.length; i++) {
//
do something for each node
}
試一試» 節點類型
該documentElement XML文檔的屬性是根節點。
該nodeName的節點的屬性是節點的名稱。
該nodeType的節點的屬性是節點的類型。
您將了解更多有關本教程的下一章節點屬性。
遍歷節點
下面的代碼循環的子節點,即,也元素節點,根節點的:
例
txt = "";
x = xmlDoc.documentElement.childNodes;
for (i = 0; i <x.length; i++)
{
// Process only element nodes (type 1)
if (x[i].nodeType == 1) {
txt += x[i].nodeName + "<br>";
}
}
試一試» 例子解釋:
- 假設你已經裝“ 的books.xml ”載入xmlDoc
- 獲取根元素的子節點(xmlDoc)
- 對於每個子節點,檢查節點類型。 如果該節點類型是"1"它是一個元素節點
- 輸出節點的名稱,如果它是一個元素節點
導航節點的關係
下面的代碼使用節點的關係導航節點樹:
例
x = xmlDoc.getElementsByTagName("book")[0];
xlen = x.childNodes.length;
y = x.firstChild;
txt = "";
for (i = 0; i <xlen; i++)
{
// Process only element nodes (type 1)
if (y.nodeType == 1) {
txt += y.nodeName + "<br>";
}
y = y.nextSibling;
}
試一試» 例子解釋:
- 假設你已經裝“ 的books.xml ”載入xmlDoc
- 獲得第一個book元素的子節點
- 設置"y"變量是第一個book元素的第一個子節點
- 對於每個子節點(starting with the first child node "y")
- 檢查節點類型。 如果該節點類型是"1"它是一個元素節點
- 輸出節點的名稱,如果它是一個元素節點
- 設置"y"變量成為下一個同級節點,並通過循環再次運行