遍历 (Traverse) 意味着在节点树中进行循环或移动。
实例
下面的例子使用 XML 文件 books.xml。
函数 loadXMLString(),位于外部 JavaScript 中,用于加载 XML 文件。遍历一棵节点树循环 <book> 元素的所有子节点。
遍历节点树
您经常需要循环 XML 文档,比如:当你需要提取每个元素的值时。
这个过程叫作“遍历节点树”。
下面的例子循环 <book> 的所有子节点,并显示它们的名称和值:
<html> <head> <script type="text/javascript" src="loadxmlstring.js"></script> </head> <body> <script type="text/javascript"> text="<book>"; text=text+"<title>Harry Potter</title>"; text=text+"<author>J K. Rowling</author>"; text=text+"<year>2005</year>"; text=text+"</book>"; xmlDoc=loadXMLString(text); // documentElement always represents the root node x=xmlDoc.documentElement.childNodes; for (i=0;i<x.length;i++) { document.write(x[i].nodeName); document.write(": "); document.write(x[i].childNodes[0].nodeValue); document.write("<br />"); } </script> </body> </html>
输出:
title: Harry Potter author: J K. Rowling year: 2005
例子解释:
- loadXMLString() 把 XML 字符串载入 xmlDoc 中
- 获取根元素的子节点
- 输出每个子节点的名称,以及文本节点的节点值
HTML
x
27
27
1
<html>
2
<head>
3
<script type="text/javascript" src="/example/xdom/loadxmlstring.js"></script>
4
</head>
5
<body>
6
<script type="text/javascript">
7
text="<book>";
8
text=text+"<title>Harry Potter</title>";
9
text=text+"<author>J K. Rowling</author>";
10
text=text+"<year>2005</year>";
11
text=text+"</book>";
12
13
xmlDoc=loadXMLString(text);
14
15
// documentElement always represents the root node
16
x=xmlDoc.documentElement.childNodes;
17
for (i=0;i<x.length;i++)
18
{
19
document.write(x[i].nodeName);
20
document.write(": ");
21
document.write(x[i].childNodes[0].nodeValue);
22
document.write("<br />");
23
}
24
</script>
25
</body>
26
</html>
27
阅读剩余 59%
作者:terry,如若转载,请注明出处:https://www.web176.com/xmldom/10846.html