Html_Xml-XPath总结

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