Html_Xml-XPath总结
2017-08-17 本文已影响27人
lioilwin
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>
简书: http://www.jianshu.com/p/dbca9676010d
CSDN博客: http://blog.csdn.net/qq_32115439/article/details/54410321
GitHub博客:http://lioil.win/2017/01/13/XPath.html
Coding博客:http://c.lioil.win/2017/01/13/XPath.html