XML DOM 高級
XML DOM - 高級
在本教程的較早章節中,我們介紹了 XML DOM,並使用了 XML DOM 的 getElementsByTagName() 方法從 XML 文檔中取回數據。
在本章中我們將結合一些其他重要的 XML DOM 方法。
您可以在我們的 XML DOM 教學 中學習更多有關 XML DOM 的知識。
獲取元素的值
下麵的實例中使用的 XML 檔:books.xml。
下麵的實例檢索第一個 <title> 元素的文本值:
實例
獲取屬性的值
下麵的實例檢索第一個 <title> 元素的 "lang" 屬性的文本值:
實例
改變元素的值
下麵的實例改變第一個 <title> 元素的文本值:
實例
x.nodeValue="Easy Cooking";
創建新的屬性
XML DOM 的 setAttribute() 方法可用於改變現有的屬性值,或創建一個新的屬性。
下麵的實例創建了一個新的屬性(edition="first"),然後把它添加到每一個 <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> 元素:
實例
newtext=xmlDoc.createTextNode("First");
newel.appendChild(newtext);
x=xmlDoc.getElementsByTagName("book");
x[0].appendChild(newel);
實例解釋
- 創建一個 <edition> 元素
- 創建值為 "First" 的文本節點
- 把這個文本節點追加到新的 <edition> 元素
- 把 <edition> 元素追加到第一個 <book> 元素
刪除元素
下麵的實例刪除第一個 <book> 元素的第一個節點:
實例
x.removeChild(x.childNodes[0]);
注釋:上面實例的結果可能會根據所用的流覽器而不同。Firefox 把新行字元當作空的文本節點,而 Internet Explorer 不是這樣。您可以在我們的 XML DOM 教學 中閱讀到更多有關這個問題以及如何避免它的知識。