📜  XPath教程(1)

📅  最后修改于: 2023-12-03 15:35:47.840000             🧑  作者: Mango

XPath教程

XPath是一种用来选择XML文档中的节点的语言。程序员可以使用XPath来搜索、筛选和操作XML文档中的节点。

XPath基础语法

XPath基础语法由一系列的路径表达式构成,例如:

  • /bookstore/book: 从根节点开始,选取所有bookstore元素的子元素book。
  • //book: 选取所有book元素,不考虑它们在文档中的位置。
  • bookstore/book[1]: 选择bookstore元素的第一个book子元素。
  • bookstore/book[last()]: 选取bookstore元素的最后一个book子元素。
  • bookstore/book[position()<3]: 选取bookstore元素的前两个book子元素。

除此之外,XPath还支持一些谓语表达式和函数:

  • @: 选取属性。
  • and, or, not: 逻辑运算符。
  • contains(): 判断一个字符串是否包含另一个字符串。
  • count(): 计算节点集合中的节点数目。
  • starts-with(): 判断一个字符串是否以另一个字符串开头。
  • string(): 将一个节点的值转化为字符串。
XPath实例

下面是一个XML文档的例子:

<?xml version="1.0" encoding="UTF-8"?>
<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>

要选取所有的book元素,可以使用如下的XPath表达式:

/bookstore/book

要选取所有category为WEB的book元素,可以使用如下表达式:

/bookstore/book[@category='WEB']

要选取所有包含author元素的book元素,可以使用如下表达式:

/bookstore/book[author]

要选取所有的title元素的值,可以使用如下表达式:

/bookstore/book/title/text()

以上只是XPath的一部分用法,程序员可以根据实际需求来选择适合自己的XPath表达式。