📅  最后修改于: 2023-12-03 15:35:47.840000             🧑  作者: Mango
XPath是一种用来选择XML文档中的节点的语言。程序员可以使用XPath来搜索、筛选和操作XML文档中的节点。
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()
: 将一个节点的值转化为字符串。下面是一个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表达式。