JavaScript操作XML(三)

上一篇介绍了XML如何加载到JavaScript解析器。
这一篇介绍加载到解析器后,JavaScript是如何访问节点的。

在详细介绍如何使用上面的方法前,我们先来了解下节点的主要属性。
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 内容: JavaScript操作XML (一)
      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)网络
阅读(148)喜欢(0)JavaScript/Ajax开发技巧