AJAX--XPATH ゝ一纸荒年。 2021-09-27 05:36 357阅读 0赞 * 前言 * 内容 * 查找所有的author节点 * 获取所有isdn属性节点(先找到包含属性的元素节点) * 获取所有name节点中的文本节点(找到包含文本节点的元素节点) * 有isdn属性的book节点(找到元素节点,然后在添加条件表达式) * 获得子节点price值大于35且isdn等于0002的所有book节点(找到元素节点,然后每一个查询条件写在中括号内) * 获得子节点price值大于35且isdn等于0002的所有book节点(找到元素节点,然后每一个查询条件写在一个XPATH的表达式,这些表达式用丨组合,表式或关系) * 总结 * end # 前言 # XPATH即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。XPath可以通过树状结构来XML,有不同类型的节点,包括元素节点,属性节点和文本节点,提供在数据结构树中找寻节点的能力。起初 XPath 的提出的初衷是将其作为一个通用的、介于XPointer与XSLT间的语法模型。但是 XPath 很快的被开发者采用来当作小型查询语言。 ![这里写图片描述][70] # 内容 # 要想找到所有的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 # 谢谢您的阅读! [70]: /images/20210923/c77f7790d85e4989a2b704534d4053c1.png
还没有评论,来说两句吧...