Latest web development tutorials

XML DOM 高級

XML DOM - 高級

本教程的較早章節中,我們介紹了XML DOM,並使用了XML DOM的getElementsByTagName()方法從XML文檔中取回數據。

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

您可以在我們的XML DOM教程中學習更多有關XML DOM的知識。


獲取元素的值

下面的實例中使用的XML文件: books.xml

下面的實例檢索第一個<title> 元素的文本值:

實例

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

嘗試一下»


獲取屬性的值

下面的實例檢索第一個<title> 元素的"lang" 屬性的文本值:

實例

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

嘗試一下»


改變元素的值

下面的實例改變第一個<title> 元素的文本值:

實例

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

嘗試一下»


創建新的屬性

XML DOM 的setAttribute() 方法可用於改變現有的屬性值,或創建一個新的屬性。

下面的實例創建了一個新的屬性(edition="first"),然後把它添加到每一個<book> 元素中:

實例

x=xmlDoc.getElementsByTagName("book");

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

嘗試一下»


創建元素

XML DOM 的createElement() 方法創建一個新的元素節點。

XML DOM 的createTextNode() 方法創建一個新的文本節點。

XML DOM 的appendChild() 方法向節點添加子節點(在最後一個子節點之後)。

如需創建帶有文本內容的新元素,需要同時創建元一個新的元素節點和一個新的文本節點,然後把他追加到現有的節點。

下面的實例創建了一個新的元素(<edition>),帶有如下文本:First,然後把它添加到第一個<book> 元素:

實例

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

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

嘗試一下»

實例解釋

  • 創建一個<edition> 元素
  • 創建值為"First" 的文本節點
  • 把這個文本節點追加到新的<edition> 元素
  • 把<edition> 元素追加到第一個<book> 元素

刪除元素

下面的實例刪除第一個<book> 元素的第一個節點:

實例

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

嘗試一下»

註釋:上面實例的結果可能會根據所用的瀏覽器而不同。Firefox 把新行字符當作空的文本節點,而Internet Explorer 不是這樣。 您可以在我們的XML DOM教程中閱讀到更多有關這個問題以及如何避免它的知識。