XPath 教程


XPath 教程

什么是XPath?

XPath(XML Path Language)是一种用于标识和访问XML文档中特定部分的语言。它被用于在XML文档中定位和选择元素。XPath是XML Path Language的缩写,依赖于XML,它是一种对XML文件格式的描述。

XPath语法

XPath语法类似于文件系统路径表示法。它由一个根元素开始,然后按照想要匹配的元素的层次结构进行层级遍历。

基础语法

XPath路径从根节点开始,写为斜杠/。元素名称是路径上的第一个元素。例如,下面是一个XPath路径,其中books是根元素,book是子元素。

/books/book

XPath路径也可以包括属性。例如,下面的XPath路径选择具有title属性,且该属性的属性值等于“Programming Perl”的book元素。

/books/book[@title='Programming Perl']

XPath路径中的轴可用于描述元素之间的关系。它是相对于当前节点的元素集合。XPath提供了以下轴:

  • child:选取当前节点的所有子元素
  • parent:选取当前节点的父元素
  • attribute:选取当前节点的所有属性
  • following-sibling:选取当前节点之后的所有同级元素
  • preceding-sibling:选取当前节点之前的所有同级元素

通配符

XPath中的通配符*表示选择所有元素。例如,以下路径将选择所有元素。

//* 

@*表示选择带有属性的所有元素。

谓词

谓词用于筛选元素。它们被包括在方括号内,并且用于指定元素的属性、位置或其他条件。例如,以下路径选择包含id属性的book元素。

/books/book[@id]

选取多个元素

XPath中的竖线|可以用于选择多个元素。例如,以下路径选择book元素和article元素。

/books/book | /articles/article

XPath函数

XPath提供了许多内置函数。这些函数可以用于字符串处理、数学计算和日期处理等。

字符串函数

  • concat():将两个或多个字符串连接在一起。
  • contains():检查字符串是否包含指定的子字符串。
  • starts-with():检查字符串是否以指定的子字符串开头。
  • ends-with():检查字符串是否以指定的子字符串结尾。
  • substring():从字符串中提取子字符串。
  • string-length():计算字符串的长度。

数学函数

  • abs():计算绝对值。
  • ceiling():将数字向上取整。
  • floor():将数字向下取整。
  • round():对数字进行四舍五入。

日期函数

  • current-date():返回当前日期。
  • current-time():返回当前时间。
  • current-dateTime():返回当前日期和时间。

总结

XPath是一种灵活的标记语言,它可以用于定位XML文档中的元素,并提供一组查询语言。XPath可以通过选择轴和谓词,以及使用内置函数和通配符来过滤和选择XML数据。了解XPath的语法和使用方法可以轻松解析XML文档。