XPath

常用规则

  • 获取文本

    表达式 描述
    a/text() 获取 a 下的文本
    a//text() 获取 a 下所有元素的文本
    //a[text()='下一页'] 获取文本为下一页的 a 元素
  • 获取属性

    表达式 描述
    nodename 选取此节点的所有子节点
    / 从当前节点选取直接子节点
    // 从当前节点选取子孙节点
    . 选取当前节点
    .. 选取当前节点的父节点
    @ 选取属性
    * 匹配任何元素节点
    @* 匹配任何属性节点
    node() 匹配任何类型的节点

示例

路径表达式 结果
/div/li[1] (注意下标从1开始) 选取属于 div 子元素的第一个li元素
/div/li[last()] 选取属于 div子元素的最后一个 li元素
/div/li[last()-1] 选取属于 div子元素的倒数第二个 li元素
/div/li[position()<3] 选取属于 div子元素的 最前面两个 li元素
//title[@lang] 选取所有拥有名为 lang 的属性的title元素
//title[@lang='eng'] 选取所有 lang 属性为 eng 的 title 元素
/div/li[price>35.00] 选取 div元素下所有 li元素,它们的 price 元素值大于 35.00
/div/li[price>35.00]/title 选取 div元素中的 li元素的所有 title 元素,且 price 元素的值大于35.00
/div/* 选取 div的所有子元素
//* 选取文档中的所有元素
//node()/meta[]/@* 选取 html 下面任意节点的 meta 节点的所有属性
//title[@*] 选取所有带有属性的 title 元素
//li/title | // li/price 选取 li元素的所有 title 和 price 元素
//title | //price 选取文档中的所有 title 和 price 元素
//div/li/title | //price 选取属于 div元素的 li元素的所有 title 元素,以及文档中所有的 price 元素
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容