nodeName、nodeValue以及nodeType包含有关于节点的信息。
本节为您讲解NodeList和NamedNodeMap的概念,以及它们之间的差别。
当我们应用类似childNodes或getElementsByTagName()之类的属性或方法时,就会收到一个NodeList对象。
NodeList对象代表一个有序的节点列表。
可通过它们的索引号码(由0起始)来拜访节点列表中的这些节点。
注释:在一个节点列表中,其中的节点是按照它们在XML中被规定的次序来返回的。
请看下面这个XML文件:books.xml
现在,我们要通过应用方法getElementsByTagName('title'),来创立一个'books.xml'中所有元素的节点列表。下面这幅图表现所返回的节点列表:
下面这个代码片段可从第一个元素中取得文本:
getElementsByTagName('title')[0].childNodes[0].nodeValue
输出:
Everyday Italian
节点列表可保持其自身的更新。假如某个元素被删除或添加,那么列表会主动更新。
节点列表有一个很有用的属性:length。length属性可返回某个节点列表中的节点数目。
下面的代码片段可取得'books.xml'中元素的数目:
getElementsByTagName('title').length
输出:
4
当您懂得到某个节点列表的长度后,就可以轻易地循环遍历这个列表,并提取您需要的值。
下面的代码片段循环遍历所有的元素,并输出它们的值:
//the x variable will hold a NodeList var x=getElementsByTagName('title')for (i=0;i') }
输出:
Everyday Italian Harry Potter XQuery Kick Start Learning XML
当我们对某个元素应用attributes属性时,就会收到一个NamedNodeMap对象。
一个NamedNodeMap代表了属性节点的一个无序列表。
可通过节点名称拜访NamedNodeMap中的节点。
注释:在一个NamedNodeMap中,节点不会以任何特别的次序返回。
NamedNodeMap会保持自身的更新。假如某个元素被删除或添加,此列表也会被主动更新。
NamedNodeMap也拥有length属性。length属性可返回列表中的节点数目。
请看下面这个XML文件:books.xml
下面的这个代码片段可取得'books.xml'中第一个元素的属性数目:
getElementsByTagName('title')[0].attributes.length
输出:
1
NamedNodeMap对象的getNamedItem()方法可被用来取回某个指定的节点。
下面的代码片段向我们展现了如何输出每个
xmlDoc=loadXMLDoc('books.xml'); var x=xmlDoc.getElementsByTagName('book'); for(i=0;i') }
输出:
COOKING CHILDREN WEB WEB