您的位置首页百科知识

xpath常用语法

xpath常用语法

的有关信息介绍如下:

xpath常用语法

XPath 常用语法指南

XPath(XML Path Language)是一种在 XML 文档中查找信息的语言。它允许你通过路径表达式来选取 XML 文档中的节点或节点集。以下是一些常用的 XPath 语法和示例,帮助你快速上手使用 XPath。

一、基本语法

  1. 选择节点

    • /:从根节点开始选择。

      /bookstore/book

      选择根元素 <bookstore> 下所有的 <book> 元素。

    • //:选择文档中的节点,不考虑它们的位置。

      //book

      选择文档中所有的 <book> 元素,无论它们在什么位置。

  2. 属性选择

    //book[@category='WEB']

    选择所有具有 category 属性且值为 WEB 的 <book> 元素。

  3. 谓语(Predicates) 谓语用于过滤节点。

    /bookstore/book[price>35.00]

    选择价格大于 35.00 的所有 <book> 元素。

  4. 轴(Axes) 轴定义了所选节点的上下文。例如:

    • child 轴(默认):选择直接子节点。
    • parent 轴:选择父节点。
    • ancestor 轴:选择祖先节点。
    • descendant 轴:选择后代节点。
    • following 轴:选择文档中位于选定节点后的所有节点。
    • preceding 轴:选择文档中位于选定节点前的所有节点。

    示例:

    /bookstore/book/ancestor::bookstore

    选择 <book> 元素的祖先 <bookstore> 元素。

二、函数

XPath 提供了一系列内置函数来处理字符串、数值、日期和时间等数据类型。

  1. 字符串函数

    • concat():连接两个或多个字符串值。

      concat('Hello, ', 'World!')
    • substring():提取字符串的子串。

      substring('Hello World', 1, 5)
  2. 数值函数

    • sum():计算节点集中数字的总和。

      sum(//book/price)
    • round():对数字进行四舍五入。

      round(123.456)
  3. 节点集函数

    • last():返回当前节点集中的最后一个节点的序号。

      last()
    • position():返回当前节点在其兄弟节点中的位置。

      position()

三、运算符

XPath 支持多种运算符来进行数值比较、逻辑运算等。

  • 算术运算符:+、-、*、div、mod
  • 比较运算符:=、!=、<、<=、>、>=
  • 逻辑运算符:and、or、not()

示例:

//book[price > 35.00 and price < 40.00]

选择价格在 35.00 到 40.00 之间的所有 <book> 元素。

四、综合示例

假设有以下 XML 文档:

<bookstore> <book category="cooking"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="children"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="web"> <title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore>
  • 选择所有类别为 "web" 的书籍的标题:

    //book[@category='web']/title
  • 计算所有书籍的总价:

    sum(//book/price)

通过以上介绍,你应该能够掌握 XPath 的基本用法,并在实际项目中应用这些语法来选择和处理 XML 数据。