-
XPath 表达式的上下文
基本 XPath 表达式
以下是基本的 XPath 表达式类型:
-
1、当前上下文
-
以句点和正斜杠 (./) 作为前缀的表达式明确使用当前上下文作为上下文。例如,以下表达式引用当前上下文中的所有 <author> 元素:
注意,此表达式等效于以下表达式:
-
2、文档
根
-
以正斜杠 (/) 为前缀的表达式使用文档树的根 作为上下文。例如,以下表达式引用此文档根的 <bookstore> 元素:
-
3、 根元素
-
使用正斜杠后接星号 (/*) 的表达式将使用根元素 作为上下文。例如,以下表达式查找文档的根元素(注:虽然根的是 * 号,但文档只有一个根元素,所以匹配的也只是一个根元素):
-
4、递归下降
-
使用双正斜杠 (//) 的表达式指示可以包括零个或多个层次结构级别的搜索。如果此运算符出现在模式的开头,上下文相对于文档的根。例如,以下表达式引用当前文档中任意位置的所 有 <author> 元素:
.// 前缀指示上下文从层次结构中当前上下文所指示的级别开始。
-
5、特定元素
-
以元素名开头的表达式引用特定元素的查询,从当前上下文节点开始。例如,以下表达式引用当前上下文节点中 <images> 元素内的 <background.jpg> 元素:
以下表达式引用当前上下文节点中 <bookstore> 元素内的 <book> 元素的集合:
以下表达式引用当前上下文节点中的所有 <first.name> 元素:
DOM 中的上下文
在 Microsoft XML DOM 中使用 XPath 表达式时,上下文是调用其 selectNodes 方法或 selectSingleNode 方法的 Node 对象。
如果直接从 DOM 使用 XPath,应从特定节点定义上下文,如Mozilla中的XPathEvaluator的方法evaluate(String expression , Node contextNode , XPathNSResolver resolver , short type , nsISupports result ) ,第二个参数就是要传递进去的上下文节点。
XSLT 中的上下文
如果直接从 XSLT 使用 XPath,应通过当前节点定义上下文。