XML DOM (Document Object Model) 定義了訪問和操作 XML 文檔的標準方法。
DOM 把 XML 文檔視為一種樹結構。通過這個 DOM 樹,可以訪問所有的元素。可以修改它們的內容(文本以及屬性),而且可以創建新的元素。元素,以及它們的文本和屬性,均被視為節點。
在本教程的較早章節中,我們介紹了 XML DOM,并使用了 XML DOM 的 getElementsByTagName() 從 DOM 樹中取回數據。
在本節中,我們將講解一些其他較常用的 XML DOM 方法。在本例中,我們使用 XML 文件 books.xml,并使用一個 JavaScript 函數把 XML 文件加載到名為 xmlDoc 的 DOM 對象中。
如需學習更多有關 XML DOM 的知識,請訪問我們的 XML DOM 教程。
下面的代碼檢索第一個
<title>
元素的文本值:
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];txt=x.nodeValue;
結果:txt = "Harry Potter"
親自試一試
下面的代碼檢索第一個
txt=xmlDoc.getElementsByTagName("title")[0].getAttribute("lang");
結果:txt = "en"
親自試一試
下面的代碼改變第一個
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];x.nodeValue="Easy Cooking";
親自試一試
setAttribute() 方法可用于改變已有屬性的值,或創建一個新屬性。
下面的代碼向每個
x=xmlDoc.getElementsByTagName("book");for(i=0;i<x.length;i++) { x[i].setAttribute("edition","first"); }
親自試一試
createElement() 方法創建新的元素節點。
createTextNode() 方法創建新的文本節點。
appendChild() 方法向節點添加子節點(在最后一個子節點之后)。
如需創建帶有文本內容的新元素,需要同時創建元素節點和文本節點。
下面的代碼創建了一個元素 (
newel=xmlDoc.createElement("edition");newtext=xmlDoc.createTextNode("First");newel.appendChild(newtext);x=xmlDoc.getElementsByTagName("book");x[0].appendChild(newel);
創建 <edition> 元素
創建值為 "First" 的文本節點
把這個文本節點追加到 <edition> 元素
把 <edition> 元素追加到第一個 <book> 元素
removeChild() 方法刪除指定的節點(或元素)。
下面的代碼片段將刪除第一個
x=xmlDoc.getElementsByTagName("book")[0];x.removeChild(x.childNodes[0]);
親自試一試
注釋:上例的結果可能會根據所用的瀏覽器而不同。Firefox 把新行字符當作空的文本節點,而 Internet Explorer 不是這樣。您可以在 w3school 的 XML DOM 教程中閱讀到更多有關這個問題以及如何避免它的知識。
這里提供的 XML DOM 實例,只向您展示了少數幾項我們可以利用 XML DOM 完成的工作。
如需學習更多有關 XML DOM 的知識,請訪問 w3school 的 XML DOM 教程。
|
新聞熱點
疑難解答