查找并訪問節(jié)點(diǎn)
你可通過若干種方法來查找您希望操作的元素:
通過使用getElementsByTagName()方法
通過使用一個(gè)元素節(jié)點(diǎn)的parentNode、firstChild以及l(fā)astChild屬性
getElementsByTagName()
getElementsByTagName()方法可在整個(gè)文檔中查找任何XML元素。
此方法會(huì)忽略文檔的結(jié)構(gòu)。假如你文檔中所有<book>元素,getElementsByTagName()方法會(huì)全部找出它們,不管這些<book>元素位于哪個(gè)級(jí)別。
就是說,這個(gè)方法會(huì)給您任何您所需要的XML元素,不論它們所處的位置!
getElementsByTagName()方法會(huì)使用指定的標(biāo)簽名返回所有的元素(作為一個(gè)節(jié)點(diǎn)列表),這些元素是您在使用此方法時(shí)所處的元素的后代。
getElementsByTagName()可用于任何XML元素:
getElementsByTagName() 語(yǔ)法
getElementsByTagName("tagname");
例子
下面這個(gè)例子會(huì)返回文檔中所有<book>元素的一個(gè)節(jié)點(diǎn)列表:
xmlDoc.getElementsByTagName("book");
節(jié)點(diǎn)列表
當(dāng)使用某個(gè)節(jié)點(diǎn)列表時(shí),我們通常會(huì)把此列表存儲(chǔ)在一個(gè)變量中,就像這樣:
var x=xmlDoc.getElementsByTagName("book");
現(xiàn)在,變量x包含著頁(yè)面中所有<book>元素的一個(gè)列表,并且我們可通過它們的索引號(hào)萊訪問這些<book>元素。
注釋:索引起始于0。
您可以通過使用length屬性來循環(huán)遍歷節(jié)點(diǎn)列表:
以下為引用的內(nèi)容:
var x=xmlDoc.getElementsByTagName("book");
for (var i=0;i<x.length;i++)
{
// do something with each <book> element
}
您也可以通過使用索引號(hào)萊訪問某個(gè)具體的元素。
要訪問第三個(gè)<book>元素,您可以這樣寫:
var y=x[2];
parentNode、firstChild以及l(fā)astChild
屬性parentNode、firstChild以及l(fā)astChild會(huì)遵循文檔的結(jié)構(gòu),可在文檔中繼續(xù)進(jìn)行短距離的旅行。
請(qǐng)看下面的XML片段:
以下為引用的內(nèi)容:
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
</bookstore>
在上面的XML代碼中,<title>元素是<book>元素的首個(gè)子元素(firstChild),<price>元素是<book>元素的最后一個(gè)子元素(lastChild)。
同時(shí),<book>元素是<title>、<author>、<year>以及<price>元素的父節(jié)點(diǎn)(parentNode)
根節(jié)點(diǎn)
有一個(gè)特殊的文檔屬性可用來訪問這些標(biāo)簽:
document.documentElement
此屬性可返回存在于XML和HTML文檔中的根節(jié)點(diǎn)。
新聞熱點(diǎn)
疑難解答
圖片精選