最新的Web開發教程
 

XML DOM - 訪問節點


與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>";
  }
}
試一試»

例子解釋:

  1. 假設你已經裝“ 的books.xml ”載入xmlDoc
  2. 獲取根元素的子節點(xmlDoc)
  3. 對於每個子節點,檢查節點類型。 如果該節點類型是"1"它是一個元素節點
  4. 輸出節點的名稱,如果它是一個元素節點

導航節點的關係

下面的代碼使用節點的關係導航節點樹:

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;
}
試一試»

例子解釋:

  1. 假設你已經裝“ 的books.xml ”載入xmlDoc
  2. 獲得第一個book元素的子節點
  3. 設置"y"變量是第一個book元素的第一個子節點
  4. 對於每個子節點(starting with the first child node "y")
  5. 檢查節點類型。 如果該節點類型是"1"它是一個元素節點
  6. 輸出節點的名稱,如果它是一個元素節點
  7. 設置"y"變量成為下一個同級節點,並通過循環再次運行