XML DOM获取节点
精华
小牛编辑
88浏览
2023-03-14
在本章中,将学习如何获取XML DOM对象的节点值。 XML文档具有称为节点的信息单元的层次结构。 Node
对象有一个属性 - nodeValue
,它返回元素的值。
在以下部分中,将讨论学习 -
- 获取元素的节点值
- 获取节点的属性值
以下所有示例中使用的node.xml如下所示 -
<Company>
<Employee category = "Technical" id = "firstelement">
<FirstName>Susen</FirstName>
<LastName>Su</LastName>
<ContactNo>1584567890</ContactNo>
<Email>susen@yiibai.com</Email>
</Employee>
<Employee category = "Non-Technical">
<FirstName>Max</FirstName>
<LastName>Su</LastName>
<ContactNo>1334667898</ContactNo>
<Email>maxsu@yiibai.com</Email>
</Employee>
<Employee category = "Management">
<FirstName>Min</FirstName>
<LastName>Su</LastName>
<ContactNo>1364562350</ContactNo>
<Email>minsu@yiibai.com</Email>
</Employee>
</Company>
1. 获取节点值
使用getElementsByTagName()
方法以文档顺序返回具有给定标记名称的所有元素的NodeList
。
示例
以下示例(getnode example.html)将XML文档(node.xml)解析为XML DOM对象,并提取子节点Firstname
的节点值(索引为0
) -
<!DOCTYPE html>
<html>
<body>
<script>
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","/node.xml",false);
xmlhttp.send();
xmlDoc = xmlhttp.responseXML;
x = xmlDoc.getElementsByTagName('FirstName')[0]
y = x.childNodes[0];
document.write(y.nodeValue);
</script>
</body>
</html>
执行
将此文件保存为:getnode_example.html 并放在服务器WEB目录中(此文件和node.xml
应位于服务器中的同一路径上)。 在输出中得到节点值为:Susen ,如下图所示 -
2. 获取属性值
属性是XML节点元素的一部分。 节点元素可以具有多个唯一属性。 属性提供有关XML节点元素的更多信息。 更确切地说,它们定义节点元素的属性。 XML属性始终是名称-值对。 属性的值称为属性节点。
getAttribute()
方法按元素名称检索属性值。
示例
以下示例(get_attribute.html )将XML文档(node.xml)解析为XML DOM对象,并提取Employee
中的category
属性的值(索引是2
) -
<!DOCTYPE html>
<html>
<body>
<script>
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","/node.xml",false);
xmlhttp.send();
xmlDoc = xmlhttp.responseXML;
x = xmlDoc.getElementsByTagName('Employee')[2];
document.write(x.getAttribute('category'));
</script>
</body>
</html>
执行
将此文件保存为:getnode_example.html 并放在服务器WEB目录中(此文件和node.xml
应位于服务器中的同一路径上)。 在输出中得到节点属性值为:Management ,如下图所示 -