前言
XPATH即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。XPath可以通过树状结构来XML,有不同类型的节点,包括元素节点,属性节点和文本节点,提供在数据结构树中找寻节点的能力。起初 XPath 的提出的初衷是将其作为一个通用的、介于XPointer与XSLT间的语法模型。但是 XPath 很快的被开发者采用来当作小型查询语言。
内容
要想找到所有的author元素节点,就必须表示出元素节点在DOM树中的路径,查找路径的方法有:
结对路径:/books/book/author
相对路径:book/author
全文档搜索法://author
//book/author
举个例子:
<books>
<book isdn="0001">
<author>Wang</author>
<name>AJAX Professional</name>
<price>35</price>
</book>
<book isdn="0002">
<author>Lee</author>
<name>AJAX In Action</name>
<price>65</price>
</book>
<book isdn="0003">
<author>Zhu</author>
<name>AJAX For Dummies</name>
<price>60</price>
</book>
</books>
查找所有的author节点
var author1 = selectNodes(rootElement,"/books/book/author");
var author2 = selectNodes(rootElement,"book/author");
var author3 = selectNodes(rootElement,"//author");
var author4 = selectNodes(rootElement,"//book/author");
获取所有isdn属性节点(先找到包含属性的元素节点)
var isdn1 = selectNodes(rootElement,"/books/book/@isdn");
var isdn2 = selectNodes(rootElement,"book/@isdn");
var isdn3 = selectNodes(rootElement,"//book/@isdn");
var isdn4 = selectNodes(rootElement,"//books/book/@isdn");
获取所有name节点中的文本节点(找到包含文本节点的元素节点)
var text1 = selectNodes(rootElement,"/books/book/name/text()");
var text2 = selectNodes(rootElement,"book/name/text()");
var text3 = selectNodes(rootElement,"//book/name/text()");
var text4 = selectNodes(rootElement,"//name/text()");
有isdn属性的book节点(找到元素节点,然后在添加条件表达式)
var book = selectNodes(rootElement,"/books/book[@isdn]");
var book = selectNodes(rootElement,"book[@isdn]");
var book = selectNodes(rootElement,"//book[@isdn]");
获得子节点price值大于35且isdn等于0002的所有book节点(找到元素节点,然后每一个查询条件写在中括号内)
var book = selectNodes(rootElement,"/books/book[@isdn='0002'][price>35]");
var book = selectNodes(rootElement,"book[@isdn='0002'][price>35]");
var book = selectNodes(rootElement,"//book[@isdn='0002'][price>35]");
获得子节点price值大于35且isdn等于0002的所有book节点(找到元素节点,然后每一个查询条件写在一个XPATH的表达式,这些表达式用丨组合,表式或关系)
var book = selectNodes(rootElement,"/books/book[@isdn='0002']|/books/book[price>35]");
var book = selectNodes(rootElement,"book[@isdn='0002']|/books/book[price>35]");
var book = selectNodes(rootElement,"//book[@isdn='0002']|/books/book[price>35]");
总结
以上这些是我总结的关于DOM树路径查找方法,希望大神们再给出一些,我将在看到的第一时间更新!
end
谢谢您的阅读!