上一篇介紹了XML如何加載到JavaScript解析器。 這一篇介紹加載到解析器後,JavaScript是如何訪問節點的。 在詳細介紹如何使用上面的方法前,我們先來了解下節點的主要屬性。 documentElement 屬性:XML 文檔的根節點。 nodeName 屬性:節點的名稱(只讀)。 nodeValue 屬性:節點的值。 nodeType 屬性:節點的類型。 childNodes 屬性:返回子節點集合。 parentNode 屬性:返回父節點。 firstChild 屬性:返回第一個子節點。 lastChild 屬性:返回最後一個子節點。 nextSibling 屬性:返回下一個兄弟(同級)節點。 previousSibling 屬性:返回前一個兄弟(同級)節點。 nodeName 屬性nodeName 屬性規定節點的名稱。
nodeValue 屬性nodeValue 屬性規定節點的值。
nodeType 屬性nodeType 屬性規定節點的類型。nodeType 是隻讀的。 最重要的節點類型是:
您可以通過四種方法來訪問節點:
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; } |
JavaScript操作XML(三)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.