“XML DOM读取节点信息”小结

<?

XML DOM读取节点信息遇到问题总结:  

 

1:NodeList: 使用节点的childNodes属性或者document对象的getElementsByTagName()方法,就会返回一个包含节点列表的NodeList

 

2: XML DOM 中,节点的关系被定义为节点的属性:

·  parentNode

·  childNodes

·  firstChild

·  lastChild

·  nextSibling

·  previousSibling

 

3:遍历XML节点列表的方法

1)通过使用 getElementsByTagName() 方法

2)通过循环(遍历)节点树

3)通过利用节点的关系在节点树中导航

 

  

 

 

1:通过getElementsByTagName方法

//通过getElementsByTagName的方法访问节点

//通过length来循环一个节点列表

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("title");

//取得节点的NodeNametitle的所有节点

for (i=0;i<x.length;i++) {

  document.write(x[i].childNodes[0].nodeValue);

//循环输出每个title子节点的文本节点的值

  document.write("<br />");

}

 

21:通过循环根节点树的方法

//循环根节点的子节点,同时节点是元素节点的方法遍历节点

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.documentElement.childNodes;

//获得根元素的所有子节点,该文档中的根节点为bookstore

for (i=0;i<x.length;i++)

{

  if (x[i].nodeType==1)

  {//如果子节点是元素节点,则输出节点的NodeName

  document.write(x[i].nodeName);

  document.write("<br />");

  }

}

 

 

 

2.2通过循环根节点的方法,并取得文本节点的值

//遍历String类型的XML

<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);

x=xmlDoc.documentElement.childNodes;

//得到根节点book下的所有子节点的NodeList

for (i=0;i<x.length;i++)

{

document.write(x[i].nodeName);

//输出子节点的NodeName

document.write(": ");

document.write(x[i].childNodes[0].nodeValue);

//输出子节点的文本节点的文本值

document.write("<br />");

}

</script>

</body>

</html>

 

3:通过节点之间的关系在节点树中进行导航

 

//通过节点之间的关系,在节点之间进行导航

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("book")[0].childNodes;

//得到第一个book节点的所有子节点

y=xmlDoc.getElementsByTagName("book")[0].firstChild;

//得到第一个book节点的第一个子节点

for (i=0;i<x.length;i++)

{

if (y.nodeType==1)

  {

  document.write(y.nodeName + "<br />");

  }

y=y.nextSibling;

//y设置成y的下一个同级节点

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值