最新的Web開發教程
 

XML DOM獲取節點值


nodeValue屬性用於獲取節點的文本值。

getAttribute()方法返回屬性的值。

×


得到一個元素的值

在DOM,一切都是一個節點。 元素節點沒有文本值。

元素節點的文本值存儲在一個子節點。 這種節點稱為文本節點。

若要檢索元素的文本價值,你必須檢索元素的文本節點的值。


該方法的getElementsByTagName

getElementsByTagName()因為它們出現在源文件中的方法返回的所有元素的一個節點列表 ,指定標記名稱,在相同的順序。

假設“ 的books.xml ”已經加載到xmlDoc中。

此代碼檢索第<title>元素:

var x = xmlDoc.getElementsByTagName("title")[0];

該子節點屬性

子節點屬性返回元素的子節點列表

下面的代碼檢索第一個的文本節點<title>元素:

x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];

nodeValue屬性

nodeValue屬性返回文本節點的文本值

下面的代碼檢索第一個文本節點的文本值<title>元素:

x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
z = y.nodeValue;

Resul在Z: "Everyday Italian"


完整的示例

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (xhttp.readyState == 4 && xhttp.status == 200) {
        myFunction(xhttp);
    }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();

function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    var x = xmlDoc.getElementsByTagName('title')[0];
    var y = x.childNodes[0];
    document.getElementById("demo").innerHTML = y.nodeValue;
}
</script>

</body>
</html>
試一試»

遍歷所有<title>元素: 試一試


獲取屬性的值

DOM,屬性節點。 與元素節點不同,屬性節點擁有文本值。

獲得一個屬性的值的方法,是獲得它的文本值。

這可以通過使用來完成getAttribute()方法或使用屬性節點的nodeValue屬性。


獲取屬性值- getAttribute()

getAttribute()方法返回attribute's value 。

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

x = xmlDoc.getElementsByTagName("title")[0];
txt = x.getAttribute("lang");
試一試»

結果TXT: "en"

遍歷所有<book>元素,並得到他們的"category"屬性: 試一試


獲取屬性值- getAttributeNode()

getAttributeNode()方法返回一個attribute node 。

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

x = xmlDoc.getElementsByTagName("title")[0];
y = x.getAttributeNode("lang");
txt = y.nodeValue;
試一試»

結果TXT = "en"

遍歷所有<book>元素,並得到他們的"category"屬性: 試一試