欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

實(shí)例

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

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

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

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

您可以通過(guò)三種方法來(lái)訪問(wèn)節(jié)點(diǎn):

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

getElementsByTagName() 方法

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

語(yǔ)法

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ù)組。

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

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("title");

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

y=x[2];

TIY

注釋?zhuān)?/span>下標(biāo)以 0 起始。

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

DOM Node List Length

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

您能夠通過(guò)使用 length 屬性來(lái)循環(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 />");
  }

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

TIY

Node Type

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

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

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

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

TIY

遍歷節(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 />");
  } 
}

例子解釋?zhuān)?/h3>
  1. 通過(guò)使用 loadXMLDoc() 把 "books.xml" 載入 xmlDoc 中
  2. 獲得根元素的子節(jié)點(diǎn)
  3. 檢查每個(gè)子節(jié)點(diǎn)的節(jié)點(diǎn)類(lèi)型。如果節(jié)點(diǎn)類(lèi)型是 "1",則是元素節(jié)點(diǎn)
  4. 如果是元素節(jié)點(diǎn),則輸出節(jié)點(diǎn)的名稱(chēng)

TIY

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

下面的代碼通過(guò)利用節(jié)點(diǎn)的關(guān)系在節(jié)點(diǎn)樹(shù)中進(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. 通過(guò)使用 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)類(lèi)型,如果節(jié)點(diǎn)類(lèi)型是 "1",則是元素節(jié)點(diǎn)
  5. 如果是元素節(jié)點(diǎn),則輸出該節(jié)點(diǎn)的名稱(chēng)
  6. 把 "y" 變量設(shè)置為下一個(gè)同級(jí)節(jié)點(diǎn),并再次運(yùn)行循環(huán)

TIY