XML DOM 高級(jí)

2020-12-21 10:09 更新

XML DOM 高級(jí)


XML DOM - 高級(jí)

本教程的較早章節(jié)中,我們介紹了 XML DOM,并使用了 XML DOM 的 getElementsByTagName() 方法從 XML 文檔中取回?cái)?shù)據(jù)。

在本章中我們將結(jié)合一些其他重要的 XML DOM 方法。

您可以在我們的 XML DOM 教程 中學(xué)習(xí)更多有關(guān) XML DOM 的知識(shí)。


獲取元素的值

下面的實(shí)例中使用的 XML 文件:books.xml

下面的實(shí)例檢索第一個(gè) <title> 元素的文本值:

實(shí)例

txt=xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue;

嘗試一下 ?

獲取屬性的值

下面的實(shí)例檢索第一個(gè) <title> 元素的 "lang" 屬性的文本值:

實(shí)例

txt=xmlDoc.getElementsByTagName("title")[0].getAttribute("lang");

嘗試一下 ?

改變?cè)氐闹?/h2>

下面的實(shí)例改變第一個(gè) <title> 元素的文本值:

實(shí)例

x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.nodeValue="Easy Cooking";

嘗試一下 ?

創(chuàng)建新的屬性

XML DOM 的 setAttribute() 方法可用于改變現(xiàn)有的屬性值,或創(chuàng)建一個(gè)新的屬性。

下面的實(shí)例創(chuàng)建了一個(gè)新的屬性(edition="first"),然后把它添加到每一個(gè) <book> 元素中:

實(shí)例

x=xmlDoc.getElementsByTagName("book");

for(i=0;i<x.length;i++)
{
x[i].setAttribute("edition","first");
}

嘗試一下 ?

創(chuàng)建元素

XML DOM 的 createElement() 方法創(chuàng)建一個(gè)新的元素節(jié)點(diǎn)。

XML DOM 的 createTextNode() 方法創(chuàng)建一個(gè)新的文本節(jié)點(diǎn)。

XML DOM 的 appendChild() 方法向節(jié)點(diǎn)添加子節(jié)點(diǎn)(在最后一個(gè)子節(jié)點(diǎn)之后)。

如需創(chuàng)建帶有文本內(nèi)容的新元素,需要同時(shí)創(chuàng)建元一個(gè)新的元素節(jié)點(diǎn)和一個(gè)新的文本節(jié)點(diǎn),然后把他追加到現(xiàn)有的節(jié)點(diǎn)。

下面的實(shí)例創(chuàng)建了一個(gè)新的元素(<edition>),帶有如下文本:First,然后把它添加到第一個(gè) <book> 元素:

實(shí)例

newel=xmlDoc.createElement("edition");
newtext=xmlDoc.createTextNode("First");
newel.appendChild(newtext);

x=xmlDoc.getElementsByTagName("book");
x[0].appendChild(newel);

嘗試一下 ?

實(shí)例解釋

  • 創(chuàng)建一個(gè) <edition> 元素
  • 創(chuàng)建值為 "First" 的文本節(jié)點(diǎn)
  • 把這個(gè)文本節(jié)點(diǎn)追加到新的 <edition> 元素
  • 把 <edition> 元素追加到第一個(gè) <book> 元素

刪除元素

下面的實(shí)例刪除第一個(gè) <book> 元素的第一個(gè)節(jié)點(diǎn):

實(shí)例

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

嘗試一下 ?

注釋?zhuān)?/strong>上面實(shí)例的結(jié)果可能會(huì)根據(jù)所用的瀏覽器而不同。Firefox 把新行字符當(dāng)作空的文本節(jié)點(diǎn),而 Internet Explorer 不是這樣。您可以在我們的 XML DOM 教程 中閱讀到更多有關(guān)這個(gè)問(wèn)題以及如何避免它的知識(shí)。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)