/ | 子运算符;选择左侧集合的直接子级。此路径运算符出现在模式开头时,表示应从根节点选择该子级。 (注意不能误认为它就代表根节点) |
// | 递归下降;在任意深度搜索指定元素。此路径运算符出现在模式开头时,表示应从根节点递归下降。 |
. | 指示当前上下文。 |
.. | 当前上下文节点的父级。 |
* | 通配符;选择所有元素,与元素名无关。 |
@ | 属性;属性名的前缀。 |
@* | 属性通配符;选择所有属性,与名称无关。 |
: | 命名空间分隔符;将命名空间前缀与元素名或属性名分隔。 |
( ) | 为运算分组,明确设置优先级。 |
[ ] | 应用筛选模式。 |
[ ] | 下标运算符;用于在集合中编制索引。 |
+ | 执行加法。 |
- | 执行减法。 |
div | 根据 IEEE 754 执行浮点除法。 |
* | 执行乘法。 |
mod | 从截断除法返回余数。 |
此表不包括布尔运算符和集运算符,这两个运算符在布尔、比较和集表达式或集运算中列出。
优先级顺序(从最高优先级到最低优先级)的定义如下表所示。
优先级 字符 分组
1 | ( ) | 分组 |
2 | [ ] | 筛选器 |
3 | / // | 路径运算 |
分组运算符 () 仅适用于顶级路径表达式。例如,(//author/degree | //author/name) 是有效的分组运算,但 //author/(degree | name) 不是。
筛选模式运算符 ([]) 的优先级高于路径运算符(/ 和 //)。例如,表达式 //comment()[3] 选择相对于文档中任意位置备注的父级索引等于 3 的所有备注。此表达式与表达式 (//comment())[3] 不同,后者选择相对于父级的所有备注集中的第三个备注。前一个表达式可以返回多个备注,后一个表达式只能返回一个备注。
这些运算符和特殊字符在本参考文档中详细说明。
![](http://msdn2.microsoft.com/Platform/Controls/CollapsibleArea/resources/minus.gif)
![](http://msdn2.microsoft.com/Platform/Controls/CollapsibleArea/resources/minus.gif)
表达式 | 引用 |
---|---|
author/first-name | 当前上下文节点的 <author> 元素中的所有 <first-name> 元素。 |
bookstore//title | <bookstore> 元素中更深的一级或多级(任意子代)的所有 <title> 元素。注意,此表达式与以下模式 bookstore/*/title 不同。 |
bookstore/*/title | 属于 <bookstore> 元素的孙级的所有 <title> 元素。 |
bookstore//book/excerpt//emph | <book> 元素的 <excerpt> 子级中的任意位置和 <bookstore> 元素中的任意位置的所有 <emph> 元素: |
.//title | 当前上下文中更深的一级或多级的所有 <title> 元素。注意,本质上只有这种情况需要句点表示法。 |
![](http://msdn2.microsoft.com/Platform/Controls/CollapsibleArea/resources/minus.gif)
![](http://msdn2.microsoft.com/Platform/Controls/CollapsibleArea/resources/minus.gif)