布尔、比较和集表达式——XPath语法详解系列(五)

  • 布尔、比较和集表达式

筛选模式可以包含布尔表达式、比较表达式和集表达式。

运算符 说明

and

逻辑与

or

逻辑或

not()

=

相等

!=

不相等

&lt; 或 <

小于

&lt;= 或 <=

小于或等于

&gt; 或 >

大于

&lt;= 或 >=

大于或等于

|

集运算;返回两个节点集的联合

 

比较运算符和布尔运算符的优先级顺序(从最高优先级到最低优先级)如下表所示。

1

( )

分组

2

[ ]

筛选

3

/

//

路径运算

4

< 或者 &lt;

<= 或者 &lt;=

> 或者 &gt;

>= 或者 &gt;=

比较

5

=

!=

比较

6

|

联合

7

not()

布尔值非

8

and

布尔值与

9

or

布尔值或

在 XML 文档(例如 XSLT 样式表)中使用运算符时,<> 标记必须分别转义为 &lt;&gt; 。例如,以下 XSLT 指令在所有 <price> 元素的数值小于或等于 10 的 <book> 元素上调用 XSLT 模板规则。

<xsl:apply-templates select="book[price &lt;= 10]"/>

XPath 表达式与 DOM 一起使用时,< 和 > 运算符不需要转义。例如,以下 JScript 语句选择所有 <price> 元素的数值小于或等于 10 的 <book> 元素。

var cheap_books = dom.selectNodes("book[price <= 10]");

布尔表达式可以匹配特定值的所有节点或包含特定范围的节点的所有节点。以下是返回 false 的布尔表达式的示例。

1 &gt;= 2

注:运算符区分大小写

逻辑与和逻辑或

布尔运算符 andor 分别执行逻辑与和逻辑或运算。这些运算符与分组括号组合使用时,可以用于构建复杂的逻辑表达式。

示例:

表达式 引用

author[degree and award]

至少包含一个 <degree> 元素以及至少包含一个 <award> 元素的所有 <author> 元素。

author[(degree or award) and publication]

至少包含一个 <degree><award> 元素以及至少包含一个 <publication> 元素的所有 <author> 元素。

布尔值非

not 布尔运算符在筛选模式中对表达式的值求非。

示例:

表达式 引用

author[degree and not(publication)]

至少包含一个 <degree> 元素但是不包含 <publication> 元素的所有 <author> 元素

author[not(degree or award) and publication]

至少包含一个 <publication> 元素但是不包含任何 <degree> 元素或 <award> 元素的所有 <author> 元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值