与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"变量成为下一个同级节点,并通过循环再次运行