参考资料

  1. xpath定位方法有哪些
  2. XPath 选取节点
  3. 正则表达式测试工具有哪些
  4. XPath 谓语(Predicates)
  5. xpath路径如何查找
  6. XPath 选取未知节点
  7. XPath Helper 介绍
  8. XPath 使用路径表达式在 XML 文档中选取节点

XPath 轴(Axes)

XPath 轴(Axes)详解表

轴名称描述语法示例说明
ancestor选择当前节点的所有祖先节点(父节点、祖父节点等)ancestor::div查找当前节点之上的所有 div 祖先
ancestor-or-self选择当前节点及其所有祖先节点ancestor-or-self::*包含当前节点及其所有祖先
attribute选择当前节点的所有属性attribute::id@id获取当前节点的 id 属性
child选择当前节点的所有子节点child::book获取当前节点下的所有 book 子节点
descendant选择当前节点的所有后代节点(子节点、孙节点等)descendant::p查找当前节点下的所有 p 元素
descendant-or-self选择当前节点及其所有后代节点descendant-or-self::*包含当前节点及其所有后代
following选择文档中当前节点之后的所有节点(不包括后代)following::div获取当前节点之后的所有 div 节点
following-sibling选择当前节点之后的所有同级节点following-sibling::li获取当前 li 节点之后的所有同级 li
namespace选择当前节点的所有命名空间节点namespace::*获取当前节点的命名空间
parent选择当前节点的父节点parent::*..获取当前节点的父节点
preceding选择文档中当前节点之前的所有节点(不包括祖先)preceding::h2获取当前节点之前的所有 h2 节点
preceding-sibling选择当前节点之前的所有同级节点preceding-sibling::td获取当前 td 节点之前的所有同级 td
self选择当前节点本身self::node().返回当前节点

常用简写形式

简写等价形式示例
@attribute::@idattribute::id
///descendant-or-self::node()///div/descendant-or-self::node()/div
.self::node().//p → 当前节点下的所有 p
..parent::node()../title → 父节点下的 title

示例应用

  1. 获取所有子节点

    child::*  // 当前节点的所有子元素
  2. 获取所有属性

    @*  // 当前节点的所有属性
  3. 获取后续同级节点

    following-sibling::li  // 当前节点之后的所有 `li` 兄弟节点
  4. 获取祖先节点

    ancestor::div  // 当前节点的所有 `div` 祖先
  5. 获取父节点下的某个子节点

    ../title  // 父节点下的 `title` 元素