精彩专题推荐:建站之入门课 建站之必修课 建站之关键课 网站价值所在 流量提高专题 css+div 标准 个人网站打造全过程
返回建站学首页
导航:
建站首页 | 网站设计 | 网站开发 | 网站运营 | 网页软件 | 建站指南 | 搜索优化 | 图像处理 | 视频教程 | 书籍教程 | 建站专题
当前位置:首页>网站开发>xml教程>正文

XML DOM 节点列表和 指定节点地图


来源:不详 时间:07-09-12 点击: 点击这里收藏本文

nodeName、nodeValue以及nodeType包含有关于节点的信息。


DOM Node List 和 NamedNodeMap

本节为您讲解NodeList和NamedNodeMap的概念,以及它们之间的区别。


DOM Node List

当我们使用类似childNodes或getElementsByTagName()之类的属性或方法时,就会收到一个NodeList对象。

NodeList对象代表一个有序的节点列表。

可通过它们的索引号码(由0起始)来访问节点列表中的这些节点。

注释:在一个节点列表中,其中的节点是按照它们在XML中被规定的顺序来返回的。

请看下面这个XML文件:books.xml

现在,我们要通过使用方法getElementsByTagName("title"),来创建一个"books.xml"中所有<title>元素的节点列表。下面这幅图表示所返回的节点列表:

XML教程:XML DOM 节点列表和 指定节点地图

下面这个代码片段可从第一个<title>元素中取得文本:

getElementsByTagName("title")[0].childNodes[0].nodeValue

输出:

Everyday Italian

取得节点列表的长度

节点列表可保持其自身的更新。如果某个元素被删除或添加,那么列表会自动更新。

节点列表有一个很有用的属性:length。length属性可返回某个节点列表中的节点数目。

下面的代码片段可取得"books.xml"中<title>元素的数目:

getElementsByTagName('title').length 

输出:

4

当您了解到某个节点列表的长度后,就可以轻易地循环遍历这个列表,并提取您需要的值。

下面的代码片段循环遍历所有的<title>元素,并输出它们的值:

//the x variable will hold a NodeList
var x=getElementsByTagName('title')for (i=0;i<x.length;i++)
  {
  document.write(x[i].childNodes[0].nodeValue)
  document.write("<br />")
  }

输出:

Everyday Italian
Harry Potter
XQuery Kick Start
Learning XML

DOM NamedNodeMap

当我们对某个元素使用attributes属性时,就会收到一个NamedNodeMap对象。

一个NamedNodeMap代表了属性节点的一个无序列表。

可通过节点名称访问NamedNodeMap中的节点。

注释:在一个NamedNodeMap中,节点不会以任何特别的顺序返回。


取得NamedNodeMap的长度

NamedNodeMap会保持自身的更新。如果某个元素被删除或添加,此列表也会被自动更新。

NamedNodeMap也拥有length属性。length属性可返回列表中的节点数目。

请看下面这个XML文件:books.xml

下面的这个代码片段可取得"books.xml"中第一个<title>元素的属性数目:

getElementsByTagName('title')[0].attributes.length 

输出:

1 

取得NamedNodeMap中某个项目的值

NamedNodeMap对象的getNamedItem()方法可被用来取回某个指定的节点。

下面的代码片段向我们展示了如何输出每个<each>元素中"category"属性的值:

xmlDoc=loadXMLDoc("books.xml");
var x=xmlDoc.getElementsByTagName("book");
for(i=0;i<x.length;i++)
  {
  //the attlist variable will hold a NamedNodeMap
  var attlist=x.item(i).attributes;
  var att=attlist.getNamedItem("category");
  document.write(att.value + "<br />")
  } 

输出:

COOKING
CHILDREN
WEB
WEB


  把此文章收藏到:          
广而告之
文章搜索
  • Google JZxue.Com

关于我们 | 联系我们 | 友情链接 | 网站地图
Copyright © 2005 - 2006 建站学 All rights reserved.