XPath 运算符学习笔记
1. 算数运算符
XPath 支持的算数运算符有加、减、乘、除和取模。它们分别用 +
、-
、*
、/
和 %
表示。
例如,假设有以下 XML 文档:
xmlCopy Code<bookstore>
<book>
<title>Harry Potter</title>
<price>29.99</price>
</book>
<book>
<title>The Hobbit</title>
<price>24.99</price>
</book>
</bookstore>
使用 XPath 表达式 /bookstore/book/price * 2
可以得到所有书籍价格的两倍:
xpathCopy Code59.98 49.98
2. 关系运算符
XPath 支持的关系运算符有等于、不等于、大于、小于、大于等于和小于等于。它们分别用 =
、!=
、>
、<
、>=
和 <=
表示。
例如,在上面的例子中,可以使用 XPath 表达式 //book[price > 25]
获取价格大于 25 的书籍:
xpathCopy Code<book>
<title>Harry Potter</title>
<price>29.99</price>
</book>
3. 逻辑运算符
XPath 支持的逻辑运算符有与、或和非。它们分别用 and
、or
和 not
表示。
例如,在上面的例子中,可以使用 XPath 表达式 /bookstore/book[price > 25 and price < 30]
获取价格在 25 和 30 之间的书籍:
xpathCopy Code<book>
<title>Harry Potter</title>
<price>29.99</price>
</book>
4. 字符串运算符
XPath 支持的字符串运算符有连接运算符。它用 concat()
表示。
例如,假设有以下 XML 文档:
xmlCopy Code<bookstore>
<book>
<title>Harry Potter</title>
<author>J.K. Rowling</author>
</book>
<book>
<title>The Hobbit</title>
<author>J.R.R. Tolkien</author>
</book>
</bookstore>
使用 XPath 表达式 concat(/bookstore/book[1]/title, " by ", /bookstore/book[1]/author)
可以获取第一本书的标题和作者名称并进行连接:
xpathCopy CodeHarry Potter by J.K. Rowling
5. 谓语
XPath 中的谓语是用来过滤节点的。它们用在路径表达式中,放在方括号中。谓语是由一个条件表达式构成的。
例如,在上面的例子中,可以使用 XPath 表达式 /bookstore/book[2]
获取第二本书:
xpathCopy Code<book>
<title>The Hobbit</title>
<author>J.R.R. Tolkien</author>
</book>
6. 函数
XPath 中提供了一些内置函数,用于操作节点或字符串。
例如,使用 string()
函数可以将节点转换为字符串:
xpathCopy Codestring(/bookstore/book[1]/title)
使用 last()
函数可以获取最后一个节点:
xpathCopy Code/bookstore/book[last()]
7. 其他运算符
除了上述运算符之外,XPath 还支持一些其他的运算符,比如 Union 运算符、Intersection 运算符和 Except 运算符,它们分别用 |
、intersect
和 except
表示。这里不再赘述。
结论
XPath 是一种用于 XML 文档的查询语言,它支持多种运算符和函数。熟练掌握 XPath 运算符的使用,可以帮助我们更加方便地从 XML 文档中获取所需的数据。