最新的Web開發教程
 

XML DOM節點列表


節點的列表被返回getElementsByTagName()方法和子節點屬性。


試一試 - 示例

下面的例子使用XML文件的Books.xml

從第一個文本<title>元素
本例使用getElementsByTagName()方法來獲取來自第一文本<title>元素"books.xml"

通過使用length屬性節點環
本例使用節點列表,並通過所有length屬性來循環<title>中的元素"books.xml"

獲取 元素的屬性
本例使用屬性列表來獲得的第一個屬性<book>元素"books.xml"

×


DOM節點列表

當使用性質或類似子節點或方法getElementsByTagName()會返回一個節點列表對象。

節點列表對象表示節點的列表,以相同的順序如在XML。

在節點列表中的節點與從0開始的下標來訪問。

下圖表示的節點列表中<title>中的“元素的books.xml ”:

DOM節點列表

假設"books.xml"被裝入變量xmlDoc中。

這段代碼返回title元素的一個節點列表"books.xml"

x = xmlDoc.getElementsByTagName("title");

上面的語句執行之後,x是一個節點列表對象。

下面的代碼片段返回第一個文本<title>節點列表中的元素(x)

var txt = x[0].childNodes[0].nodeValue;
試一試»

上述語句的執行,TXT =後"Everyday Italian"


節點列表長度

節點列表對象會保持自身最新。 如果一個元素被刪除或添加,列表會自動更新。

節點列表的長度屬性是列表中的節點的數目。

這段代碼返回的數量<title>中的元素"books.xml"

x = xmlDoc.getElementsByTagName('title').length;

上面的語句的執行後,x的值將是4。

節點列表的長度可以通過在列表中的所有元素被用於循環。

此代碼片段使用length屬性來遍歷列表中<title>元素:

x = xmlDoc.getElementsByTagName('title');
xLen = x.length;

for (i = 0; i <xLen; i++) {
    txt += x[i].childNodes[0].nodeValue) + " ";
}

輸出:

Everyday Italian
Harry Potter
XQuery Kick Start
Learning XML
試一試»

例子解釋:

  1. 假設“ 的books.xml ”載入到xmlDoc中
  2. 設置x變量來保存所有title元素的節點列表
  3. 收集文本節點值<title>元素

DOM屬性列表(Named Node Map)

元素節點的屬性屬性返回屬性節點的列表。

這被稱為一個命名節點圖,並且是類似於一個節點列表,除了在方法和屬性一些差異。

一個屬性列表會保持自身最新。 如果一個屬性被刪除或添加,列表會自動更新。

這段代碼從第一個返回屬性節點的一個列表<book>的元素"books.xml"

x = xmlDoc.getElementsByTagName('book')[0].attributes;

上面的代碼的執行後,x.length =是屬性和數量x.getNamedItem()可用於返回一個屬性節點。

這段代碼獲取的價值"category"屬性,屬性的一本書,數量:

x = xmlDoc.getElementsByTagName("book")[0].attributes;

txt = x.getNamedItem("category").nodeValue + " " + x.length;

輸出:

cooking 1
試一試»

例子解釋:

  1. 假設“ 的books.xml ”載入到xmlDoc中
  2. 設置x變量來保存首先所有屬性的列表<book>元素
  3. 得到的值"category"屬性和屬性列表的長度