最新的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"属性和属性列表的长度