参考资料

  1. XPath 选取节点
  2. xpath路径如何查找
  3. XPath 谓语(Predicates)
  4. XPath 基本语法
  5. XPath Helper 介绍
  6. XPath 标准函数
  7. XPath 节点
  8. XPath定位元素技巧

XPath 简介

XPath(XML Path Language)是 W3C 标准,用于在 XML 文档中导航和查询节点。它提供了一种路径表达式语法来定位 XML 文档中的元素、属性、文本等。

主要属性

  1. 路径表达式:用于定位 XML 节点。

  2. 节点类型:元素、属性、文本、命名空间等。

  3. 轴(Axes):定义节点与当前节点的关系。

  4. 运算符和函数:支持逻辑、比较和数值运算。

基本语法

  1. 节点选择

    • /:从根节点开始。

    • //:选择文档中所有匹配节点。

    • .:当前节点。

    • ..:父节点。

    • @:选择属性。

  2. 谓语(Predicates)

    • 用于过滤节点,写在方括号内,如 //book[price>35]

  3. 通配符

    • *:匹配任何元素节点。

    • @*:匹配任何属性节点。

  4. 运算符

    • |:合并多个路径结果。

    • +, -, *, div:算术运算。

    • =, !=, <, >:比较运算。

  5. 函数

    • text():获取节点文本。

    • contains():检查字符串包含。

    • count():计算节点数量。

用法示例

  1. 选择所有 book 节点

    //book
  2. 选择 book 节点的 title 子元素

    //book/title
  3. 选择 price 大于 35 的 book 节点

    //book[price>35]
  4. 选择带有 category 属性的 book 节点

    //book[@category]
  5. 选择 title 包含 "XPath" 的 book 节点

    //book[contains(title, 'XPath')]
  6. 选择第一个 book 节点

    //book[1]
  7. 选择 price 和 title

    //book/title | //book/price
  8. 选择父节点

    //title/..

轴(Axes)示例

  1. 子节点

    child::book
  2. 属性节点

    attribute::category
  3. 祖先节点

    ancestor::book
  4. 后续兄弟节点

    following-sibling::book

函数示例

  1. 计算 book 节点数量

    count(//book)
  2. 获取字符串长度

    string-length(//book/title)
  3. 求和

    sum(//book/price)

完整 XML 示例

<bookstore>
  <book category="web">
    <title lang="en">XPath Guide</title>
    <price>30</price>
  </book>
  <book category="cooking">
    <title lang="en">Recipe Book</title>
    <price>40</price>
  </book>
</bookstore>

对应 XPath 查询

  1. 选择所有书名

    //book/title
  2. 选择价格大于 35 的书名

    //book[price>35]/title
  3. 选择 category 为 "web" 的书名

    //book[@category='web']/title

声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。