XPath(XML路径语言),是查询XML元素和属性位置的语言,用路径表达式来选取XML元素或属性。
1、XPath语法
XPath语法 | 说明 |
---|---|
/ | 从根元素选取 |
// | 从全文档选取 |
. | 当前元素 |
.. | 父元素 |
@ | 属性 |
* | 匹配任何元素 |
@* | 匹配任何属性 |
node() | 匹配任何类型元素 |
2、XPath实例
Xml文档(ABCD.xml)
<A>
<B id='b'>
<C id='c'>
<D>xxx</D>
</C>
</B>
<B>
<C>
<D>ddd</D>
</C>
</B>
</A>
XPath实例 | 说明 |
---|---|
/A/B/C | 所有A下的B下的所有CCC元素 |
/A/B/* | A下B下所有元素 |
/A/B[2] | A下第二个B元素 |
/A/B[last()] | A下最后一个B元素 |
//A | 全文档所有A元素 |
//* | 全文档所有元素 |
//@id | 所有名为id的属性 |
//B[@id] | 所有具有id属性的B元素 |
//B[@*] | 所有具有属性的B元素 |
//B[not(@*)] | 所有不存在属性的B元素 |
//B[@id=’b’] | 所有属性值为b的B元素 |
3、JavaScript应用Xpath的实例
<!DOCTYPE html>
<html><body><script> // 加载Xml文档,针对大多数浏览器 var xmlhttp=new XMLHttpRequest(); // 针对IE浏览器(被微软淘汰了) var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); xmlhttp.open("GET","ABCD.xml",false); xmlhttp.send(""); xmlDoc = xhttp.responseXML; // 选取节点,针对大多数浏览器 xpath = "/A/B/C/D"; var nodes = xmlDoc.evaluate(xpath,xmlDoc,null,XPathResult.ANY_TYPE,null); // 针对IE浏览器(被微软淘汰了) xmlDoc.selectNodes(xpath); // 输出结果 document.write(nodes[0].childNodes[0].nodeValue); </script></body></html>
GitHub博客:http://lioil.win/2017/01/13/XPath.html
Coding博客:http://c.lioil.win/2017/01/13/XPath.html