zoukankan      html  css  js  c++  java
  • XPath 表达式的上下文

    XPath 表达式的上下文

     引自:http://msdn.microsoft.com/zh-cn/library/ms256471(VS.80).aspx

    XPath 表达式的计算取决于运算表达式所针对的上下文。上下文包括计算表达式所针对的节点及其关联的环境,包括下列内容:

    • 上下文节点相对于同辈节点的位置(按文档顺序)。

    • 上下文的大小 — 即上下文节点的同辈节点数加 1。

    • 可以解析变量引用的变量绑定。

    • 函数库。

    • 表达式范围中的命名空间声明。

    为了更好地评价上下文的概念,请考虑包含节点的树。向树根请求所有名为 X 的节点时,将返回一个结果集,而向树枝请求这些节点时,将返回不同的结果集。因此,表达式的结果取决于执行表达式所针对的上下文。

    XPath 表达式可以在一个特定的上下文匹配特定的模式,返回结果,然后相对于所返回节点的上下文执行其他运算。这样,在整个文档树中进行搜索时,使用 XPath 表达式非常灵活。

    基本 XPath 表达式

    以下是基本的 XPath 表达式类型。每一类型都在下面进行了描述。

    • 当前上下文

    • 文档根

    • 根元素

    • 递归下降

    • 特定元素

    示例

    下面的示例显示一些基本的 XPath 表达式。通过将这些简单的表达式组合在一起,并使用各种 XPath 运算符和特殊字符,可以生成更复杂的表达式。

    当前上下文

    以句点和正斜杠 (./) 作为前缀的表达式明确使用当前上下文作为上下文。例如,以下表达式引用当前上下文中的所有 <author> 元素:

    ./author

    注意,此表达式等效于以下表达式:

     author
    文档根

    以正斜杠 (/) 为前缀的表达式使用文档树的根作为上下文。例如,以下表达式引用此文档根的 <bookstore> 元素:

     /bookstore
    根元素

    使用正斜杠后接星号 (/*) 的表达式将使用根元素作为上下文。例如,以下表达式查找文档的根元素:

     /*
    递归下降

    使用双正斜杠 (//) 的表达式指示可以包括零个或多个层次结构级别的搜索。如果此运算符出现在模式的开头,上下文相对于文档的根。例如,以下表达式引用当前文档中任意位置的所有 <author> 元素:

     //author
    例:XmlNodeList nodelist1 = xmlDoc.SelectNodes("//author");

    .// 前缀指示上下文从层次结构中当前上下文所指示的级别开始。

    特定元素

    以元素名开头的表达式引用特定元素的查询,从当前上下文节点开始。例如,以下表达式引用当前上下文节点中 <images> 元素内的 <background.jpg> 元素:

     
    images/background.jpg
    

    以下表达式引用当前上下文节点中 <bookstore> 元素内的 <book> 元素的集合:

     
    bookstore/book
    

    以下表达式引用当前上下文节点中的所有 <first.name> 元素:

     
    first.name
    
    注意

    元素名可以包括句点字符 (.)。这些名称的用法与任何其他名称一样。

    DOM 中的上下文

    在 Microsoft XML DOM 中使用 XPath 表达式时,上下文是调用其 selectNodes 方法或 selectSingleNode 方法的 Node 对象。

    如果直接从 DOM 使用 XPath,应从特定节点定义上下文。

    XSLT 中的上下文

    如果直接从 XSLT 使用 XPath,应通过当前节点定义上下文。

  • 相关阅读:
    Spring基础07——配置集合属性
    Spring基础06——依赖注入的一些细节
    Spring基础05——Spring依赖注入的三种方式
    Spring基础04——ApplicationContext
    bat文件设置ip自动和静态ip切换
    新增妹子动画
    达梦、oracel、mysql数据库兼容
    日期校验正则表达式
    JAVA实现HTTP请求
    javacv获取视频第一帧
  • 原文地址:https://www.cnblogs.com/sgivee/p/1741257.html
Copyright © 2011-2022 走看看