XML DOM 遍歷節(jié)點(diǎn)樹(shù)
遍歷 (Traverse) 意味著在節(jié)點(diǎn)樹(shù)中進(jìn)行循環(huán)或移動(dòng)。
實(shí)例
下面的例子使用 XML 文件 books.xml。
函數(shù) loadXMLString(),位于外部 JavaScript 中,用于加載 XML 文件。
- 遍歷一棵節(jié)點(diǎn)樹(shù)
- 循環(huán) <book> 元素的所有子節(jié)點(diǎn)。
遍歷節(jié)點(diǎn)樹(shù)
您經(jīng)常需要循環(huán) XML 文檔,比如:當(dāng)你需要提取每個(gè)元素的值時(shí)。
這個(gè)過(guò)程叫作“遍歷節(jié)點(diǎn)樹(shù)”。
下面的例子循環(huán) <book> 的所有子節(jié)點(diǎn),并顯示它們的名稱和值:
<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); // documentElement always represents the root node x=xmlDoc.documentElement.childNodes; for (i=0;i<x.length;i++) { document.write(x[i].nodeName); document.write(": "); document.write(x[i].childNodes[0].nodeValue); document.write("<br />"); } </script> </body> </html>
輸出:
title: Harry Potter author: J K. Rowling year: 2005
例子解釋:
- loadXMLString() 把 XML 字符串載入 xmlDoc 中
- 獲取根元素的子節(jié)點(diǎn)
- 輸出每個(gè)子節(jié)點(diǎn)的名稱,以及文本節(jié)點(diǎn)的節(jié)點(diǎn)值