XPath 运算符
XPath 运算符
XPath 是一种查询 XML 文档内数据的语言,它提供了一系列的运算符用于查询和比较 XML 元素和属性节点的值。本文将介绍 XPath 中的运算符。
定位符
XPath 中使用 /
符号表示从根节点开始定位节点。例如:
/catalog/cd/title
表示选择所有 catalog
元素下的 cd
子元素的 title
子元素。
相对于根节点,XPath 也可以使用 .
表示当前节点和 ..
表示父节点。
./catalog/cd/title
../catalog
谓语
XPath 谓语用于筛选符合条件的节点。谓语必须紧跟在元素或者属性选择器后面,使用方括号 []
框住条件语句。例如:
/catalog/cd[price>10.00]/title
表示选择所有 catalog
元素下的 cd
子元素,条件是 price
子元素的值大于 10.00
,并返回它们的 title
子元素。
可以用多个谓语来进一步限制筛选条件:
/catalog/cd[price>10.00][artist='Bob Dylan']/title
返回 catalog
元素下的 cd
子元素,满足 price>10.00
和 artist='Bob Dylan'
两个条件,然后返回它们的 title
子元素。
逻辑运算符
XPath 支持三种逻辑运算符,它们分别是:
and
:逻辑与or
:逻辑或not
:逻辑非
逻辑运算符通常与谓语一起使用。例如:
//book[price>35.00 and contains(title,'Python')]
选择文档中所有 book
元素,满足 price>35.00
和 title
子元素包含字符串 Python
的条件语句。
算术运算符
XPath 支持六种算术运算符,分别是:
+
:加法-
:减法*
:乘法/
:除法%
:求余数div
:除法
算术运算符可以用于数值类型节点的运算。例如:
//book[price div 2 >= 20.00]
选择文档中所有 book
元素,其中 price
子元素的值除以 2
的商大于等于 20.00
。
字符运算符
XPath 支持两种字符串运算符,分别是:
concat
:串接运算符starts-with
:前缀运算符ends-with
:后缀运算符contains
:子串运算符
字符运算符用于选择 XML 文档中符合指定条件的节点。
//movie[genre='Action' and starts-with(title,'The') and contains(actor/@name,'Tom')]
选择文档中所有 movie
元素,条件是 genre
子元素的值等于 Action
,title
子元素的值以 The
开头,且任意一个含有 name
属性的子元素的 name
属性值包含字符串 Tom
。