多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] ## XPath Xpath 有 XPath 路径表达式 ,并且内置函数 **节点** 有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点 ## 语法 ``` <?xml version="1.0" encoding="UTF-8"?> <bookstore> <book> <title lang="eng">Harry Potter</title> <price>29.99</price> </book> <book> <title lang="eng">Learning XML</title> <price>39.95</price> </book> </bookstore> ``` ## 选取节点 | 表达式 |实例| 描述 | | --- | --- | ---| | nodename|bookstore| 选取此节点的所有子节点。 | | / | /bookstore |从根节点选取(取子节点)。 | | // | `bookstore/book ` or `bookstore//book` |从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置(取子孙节点)。 | | . | |选取当前节点。 | | .. | |选取当前节点的父节点。 | | @ | //@lang|选取属性。 | ## 谓语 | 路径表达式 | 结果 | | --- | --- | | /bookstore/book\[1\] | 选取属于 bookstore 子元素的第一个 book 元素。 | | /bookstore/book\[last()\] | 选取属于 bookstore 子元素的最后一个 book 元素。 | | /bookstore/book\[last()-1\] | 选取属于 bookstore 子元素的倒数第二个 book 元素。 | | /bookstore/book\[position()<3\] | 选取最前面的两个属于 bookstore 元素的子元素的 book 元素。 | | //title\[@lang\] | 选取所有拥有名为 lang 的属性的 title 元素。 | | //title\[@lang='eng'\] | 选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性。 | | /bookstore/book\[price>35.00\] | 选取 bookstore 元素的所有 book 元素,且其中的 price 元素的值须大于 35.00。 | | /bookstore/book\[price>35.00\]//title | 选取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值须大于 35.00。 | ## 选取未知节点 | 路径表达式 | 结果 | | --- | --- | | /bookstore/\* | 选取 bookstore 元素的所有子元素。 | | //\* | 选取文档中的所有元素。 | | //title\[@\*\] | 选取所有带有属性的 title 元素。 | ## 常用函数 | 函数 | |实例 作用| |---|---|---| |contains| //*[contains(text(),'ABC')] 获取所有属性中带 ABC 的值| ## 实例 ### contains 进行html的匹配 在进行自动化测试时,比较常用,以下代码表示获取html的内容为网盘的节点 ``` //*[contains(text(),'网盘')] ```