XPath 总结学习笔记

什么是XPath?

XPath(XML Path Language)是一种在XML文档中定位节点的语言,它可以通过简洁的路径表达式来选取XML文档中的节点和节点集合。

XPath语法

XPath语法非常简洁,主要由以下几个部分组成:

节点选择器

XPath通过不同类型的节点选择器来表达匹配的节点,例如:

  • nodename: 选择指定名称的所有节点
  • *: 选择所有节点
  • @attribute: 选择指定属性的所有节点

路径表达式

XPath使用路径表达式来定位节点,例如:

  • /: 根节点
  • //: 选取文档中的所有节点,或者某个节点下的所有节点
  • .: 当前节点
  • ..: 父节点

谓语

XPath使用谓语来进一步筛选匹配的节点,例如:

  • [attribute-name]: 选择含有指定属性名的节点
  • [attribute-name="value"]: 选择含有指定属性名和属性值的节点
  • [position()]: 选择指定位置的节点
  • [last()]: 选择最后一个节点

XPath实例

假设我们有以下XML文档:

xmlCopy Code
<books> <book id="001"> <title>Harry Potter and the Philosopher's Stone</title> <author>J.K. Rowling</author> <price>20.00</price> </book> <book id="002"> <title>Harry Potter and the Chamber of Secrets</title> <author>J.K. Rowling</author> <price>22.00</price> </book> <book id="003"> <title>The Hitchhiker's Guide to the Galaxy</title> <author>Douglas Adams</author> <price>18.00</price> </book> </books>

我们可以使用以下XPath表达式来选取不同的节点:

  • //book: 选取所有的book节点
  • /books/book[1]/title: 选取第一个book节点的title子节点
  • /books/book[@id="002"]/price: 选取id为002的book节点的price子节点
  • /books/book[last()]/author: 选取最后一个book节点的author子节点

通过XPath,我们可以快速定位XML文档中的节点,提高开发效率。