最新的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"属性: 试一试