五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 建站教程 > XML DOM 教程 > XML DOM 訪問節(jié)點(diǎn)

XML DOM 訪問節(jié)點(diǎn)

此節(jié)有 228 人學(xué)習(xí)過     參與評(píng)論

通過 DOM,您能夠訪問 XML 文檔中的每個(gè)節(jié)點(diǎn)。

實(shí)例

下面的例子使用 XML 文件 books.xml

函數(shù) loadXMLDoc(),位于外部 JavaScript 中,用于加載 XML 文件。

使用節(jié)點(diǎn)列表中的下標(biāo)號(hào)來訪問節(jié)點(diǎn)
本例使用 getElementsByTagname() 方法來獲得 "books.xml" 中的第三個(gè) <title> 元素。
使用 length 屬性來循環(huán)節(jié)點(diǎn)
本例使用 length 屬性來循環(huán) "books.xml" 中的所有 <title> 元素。
查看元素的節(jié)點(diǎn)類型
本例使用 nodeType 屬性來獲得 "books.xml" 中根元素的節(jié)點(diǎn)類型。
循環(huán)元素節(jié)點(diǎn)
本例使用 nodeType 屬性來處理 "books.xml" 中的元素節(jié)點(diǎn)。
使用節(jié)點(diǎn)的關(guān)系來循環(huán)元素節(jié)點(diǎn)
本例使用 nodeType 屬性和 nextSibling 屬性來處理 "books.xml" 中的元素節(jié)點(diǎn)。

訪問節(jié)點(diǎn)

您可以通過三種方法來訪問節(jié)點(diǎn):

  1. 通過使用 getElementsByTagName() 方法
  2. 通過循環(huán)(遍歷)節(jié)點(diǎn)樹
  3. 通過利用節(jié)點(diǎn)的關(guān)系在節(jié)點(diǎn)樹中導(dǎo)航

getElementsByTagName() 方法

getElementsByTagName() 返回?fù)碛兄付?biāo)簽名的所有元素。

語法

node.getElementsByTagName("tagname");

實(shí)例

下面的例子返回 x 元素下的所有 <title> 元素:

x.getElementsByTagName("title");

請(qǐng)注意,上面的例子僅返回 x 節(jié)點(diǎn)下的 <title> 元素。要返回 XML 文檔中的所有 <title> 元素,請(qǐng)使用:

xmlDoc.getElementsByTagName("title");

在這里,xmlDoc 就是文檔本身(文檔節(jié)點(diǎn))。

DOM Node List

getElementsByTagName() 方法返回節(jié)點(diǎn)列表 (node list)。節(jié)點(diǎn)列表是節(jié)點(diǎn)的數(shù)組。

下面的代碼通過使用 loadXMLDoc() 把 "books.xml" 載入 xmlDoc 中,然后在變量 x 中存儲(chǔ) <title> 節(jié)點(diǎn)的一個(gè)列表:

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("title");

可通過下標(biāo)訪問 x 中的 <title> 元素。要訪問第三個(gè) <title>,您可以編寫:

y=x[2];

親自試一試

注釋:下標(biāo)以 0 起始。

在本教程中稍后的章節(jié),您將學(xué)到更多有關(guān) Node List 的知識(shí)。

DOM Node List Length

length 屬性定義節(jié)點(diǎn)列表的長(zhǎng)度(即節(jié)點(diǎn)的數(shù)目)。

您能夠通過使用 length 屬性來循環(huán)一個(gè)節(jié)點(diǎn)列表:

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("title");

for (i=0;i<x.length;i++)
  { 
  document.write(x[i].childNodes[0].nodeValue);
  document.write("<br />");
  }

例子解釋:

  1. 使用 loadXMLDoc() 把 "books.xml" 載入 xmlDoc
  2. 取得所有 <title> 元素節(jié)點(diǎn)
  3. 輸出每個(gè) <title> 元素的文本節(jié)點(diǎn)的值

親自試一試

Node Type

XML 文檔的 documentElement 屬性是根節(jié)點(diǎn)。

節(jié)點(diǎn)的 nodeName 屬性是節(jié)點(diǎn)的名稱。

節(jié)點(diǎn)的 nodeType 屬性是節(jié)點(diǎn)的類型。

您將在本教程的下一節(jié)中學(xué)習(xí)更多有關(guān)節(jié)點(diǎn)屬性的知識(shí)。

親自試一試

遍歷節(jié)點(diǎn)

下面的代碼循環(huán)根節(jié)點(diǎn)的子節(jié)點(diǎn),同時(shí)也是元素節(jié)點(diǎn):

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.documentElement.childNodes;

for (i=0;i<x.length;i++)
{ 
  if (x[i].nodeType==1)
  {//Process only element nodes (type 1) 
  document.write(x[i].nodeName);
  document.write("<br />");
  } 
}

例子解釋:

  1. 通過使用 loadXMLDoc() 把 "books.xml" 載入 xmlDoc 中
  2. 獲得根元素的子節(jié)點(diǎn)
  3. 檢查每個(gè)子節(jié)點(diǎn)的節(jié)點(diǎn)類型。如果節(jié)點(diǎn)類型是 "1",則是元素節(jié)點(diǎn)
  4. 如果是元素節(jié)點(diǎn),則輸出節(jié)點(diǎn)的名稱

親自試一試

利用節(jié)點(diǎn)的關(guān)系進(jìn)行導(dǎo)航

下面的代碼通過利用節(jié)點(diǎn)的關(guān)系在節(jié)點(diǎn)樹中進(jìn)行導(dǎo)航:

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("book")[0].childNodes;
y=xmlDoc.getElementsByTagName("book")[0].firstChild;

for (i=0;i<x.length;i++)
{
if (y.nodeType==1)
  {//Process only element nodes (type 1)
  document.write(y.nodeName + "<br />");
  }
y=y.nextSibling;
}
  1. 通過使用 loadXMLDoc() 把 "books.xml" 載入 xmlDoc 中
  2. 獲得第一個(gè) book 元素的子節(jié)點(diǎn)
  3. 把 "y" 變量設(shè)置為第一個(gè) book 元素的第一個(gè)子節(jié)點(diǎn)
  4. 檢查每個(gè)子節(jié)點(diǎn)的節(jié)點(diǎn)類型,如果節(jié)點(diǎn)類型是 "1",則是元素節(jié)點(diǎn)
  5. 如果是元素節(jié)點(diǎn),則輸出該節(jié)點(diǎn)的名稱
  6. 把 "y" 變量設(shè)置為下一個(gè)同級(jí)節(jié)點(diǎn),并再次運(yùn)行循環(huán)

親自試一試

如對(duì)本文有疑問,請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答!! 點(diǎn)擊進(jìn)入論壇

發(fā)表評(píng)論 (228人查看,0條評(píng)論)
請(qǐng)自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動(dòng)的言論。
昵稱:
最新評(píng)論
------分隔線----------------------------
XML DOM 教程目錄

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時(shí)間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號(hào)