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

發佈了17 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章