XML

详细介绍如何使用上面的方法前,我们来了解一下节点的主要属性。
documentElement 属性:XML 文档的根节点。
nodeName 属性:节点的名称(只读)。
nodeValue 属性:节点的值。
nodeType 属性:节点的类型。
childNodes 属性:返回子节点集合。
parentNode 属性:返回父节点。
firstChild 属性:返回第一个子节点。
lastChild 属性:返回最后一个子节点。
nextSibling 属性:返回下一个子节点。
previousSibling 属性:返回上一个子节点。

nodeName 属性

nodeName 属性规定节点的名称。
  • nodeName 是只读的
  • 元素节点的 nodeName 与标签名相同
  • 属性节点的 nodeName 是属性的名称
  • 文本节点的 nodeName 永远是 #text
  • 文档节点的 nodeName 永远是 #document

nodeValue 属性

nodeValue 属性规定节点的值。
  • 元素节点的 nodeValue 是 undefined
  • 文本节点的 nodeValue 是文本自身
  • 属性节点的 nodeValue 是属性的值

nodeType 属性

nodeType 属性规定节点的类型。
nodeType 是只读的。

最重要的节点类型是:

元素类型节点类型
元素1
属性2
文本3
注释8
文档9



您可以通过四种方法来访问节点:
1、通过getElementsById() 方法。
    用法: var xNode = xmlDoc.getElementsById('ID') ;
    解释:这个方法我想大家已经很熟悉了。就是如果XML里有个id='ID'的Node,那个就返回这个Node节点,否则返回null。
    在得到这个Node后,就可以用上面的属性进行访问了。

    ps: xmlDoc的定义可以在上一篇文章中找到。


2、通过getElementsByTagName() 方法。
     用法:var arrNodes=xmlDoc.getElementsByTagName('TagName') ;
     解释:这个方法是根据tagname返回一个数组。此方法最常用。
     例子1:
     //xml 内容: http://blog.csdn.net/avon520/archive/2008/11/20/3340927.aspx

     var arrNodes=xmlDoc.getElementsByTagName("title");
     for (i=0;i<arrNodes.length;i++)
     { 
       alert(arrNodes[i].childNodes[0].nodeValue);
     }
例子2:
    // 获取第一个 <title> 元素节点的文本节点。注意,元素内的文本是元素的子节点,叫文本节点。
     var xNode=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
     alert(xNode.nodeValue); // 文本节点的值 。output "Everyday Italian"
 
3、通过循环(遍历)节点树。
    这个方法没什么好说的,就是用for循环结合childNodes遍历所以的节点。
例子:
x=xmlDoc.documentElement.childNodes;
for (i=0;i<x.length;i++)//只遍历了一层

  document.write(x[i].nodeName);
  document.write("<br />");
}

4、通过节点的关系在节点树中导航。

    这个方法是根据当前节点得到parentNode 、firstChild、lastChild、nextSibling 、previousSibling 来移动。
x=xmlDoc.getElementsByTagName("book")[0].childNodes;
y=xmlDoc.getElementsByTagName("book")[0].firstChild;
for (i=0;i<x.length;i++)
{
  document.write(y.nodeName + "<br />");
   y=y.nextSibling;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值