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 教學中閱讀更多關於這個問題以及如何避免它的知識。