谓词是一个 XPath
表达式,用于针对某个轴筛选节点集,并生成一个新的节点集。此筛选过程包括按顺序针对节点集中的每个节点计算该谓词。每次针对节点计算该谓词时:
-
上下文节点是当前计算的节点。
-
上下文大小节点集中正在计算的节点数。
-
上下文位置是上下文节点在节点集中的位置。
最后一个上下文(即节点集中上下文节点的上下文)相对于定位步骤中指定的轴浏览文档树的方向。通常,轴会按照正方向或反方向浏览树:
-
正轴是包含上下文节点或上下文节点之后的节点的轴。child::
、descendant::
、descendant-or-self::
、following::
和 following-sibling::
轴是正轴。这些正轴按文档顺序为节点集中的节点编号,从第一个位置 1 开始。
-
反轴是包含上下文节点或上下文节点之前的节点的轴。ancestor::
、ancestor-or-self::
、preceding::
和 preceding-sibling::
轴是反轴。这些反轴按文档顺序相反的顺序为节点集中的节点编号,从第一个位置 1
开始。
对于其他轴,self::
和 parent::
轴返回单个节点。因此,指定正轴或反轴对这两个轴没有意义。attribute::
和 namespaces::
轴没有定义顺序;所以,也没有正轴和反轴。
选择节点
谓词表达式计算为数值或布尔值。
如果谓词计算为数字,XPath
将该数字与上下文节点的上下文位置进行比较。如果数字和位置相同(即上下文节点处于树中相应的位置),谓词将计算为
true,上下文节点将包含在新的节点集中。否则,上下文节点将排除在新节点集之外。
如果谓词没有计算为数字,XPath 将使用 boolean
函数将结果转换为布尔值。例如,谓词
[genre='Computer']
计算为一个节点集。如果上下文节点包含内容为 Computer
的
<genre>
子元素,此谓词将计算为 true,上下文节点将包含在新的节点集中。否则,上下文节点将排除在新节点集之外。
注意
数字谓词 [x] 等效于布尔谓词 [position()=x]
。
|
分享到:
相关推荐
"XPath路径表达式详解" XPath 是 W3C 的一个标准,旨在在 XML1.0 或 XML1.1 文档节点树中定位节点。XPath 路径表达式是一种表达式语言,返回值可能是节点、节点集合、原子值或节点和原子值的混合等。XPath2.0 是 ...
本文档作为XPath语法规则的中文版指南,将会详细地介绍XPath的基本概念、路径表达式的构成、轴的应用、节点测试和谓词的使用,以及XPath函数库的详细说明。通过阅读本文档,用户可以深入理解XPath的语法和用法,能够...
7. **位置路径**:XPath的位置路径可以用来选取文档中的一系列节点,如通过`/bookstore/book[position()=1]`选取第一个`<book>`元素。 8. **比较和集表达式**:XPath提供了比较节点和值的表达式,如`=`, `!=`, `, `...
在使用 XPath 之前,需要了解 XML 的基础知识,并且需要了解 XPath 的基础知识,例如 XPath 路径表达式的语法规则、上下文、轴、节点测试和谓词等概念。 XPath 是一种功能强大且灵活的语言,广泛应用于 XML 文档...
XPath 详解总结 XPath 是 W3C 的一个标准,它的主要目的是为了在 XML 文档节点树中定位节点。XPath 有两种版本:XPath1.0 和 XPath2.0。XPath2.0 是 XPath1.0 的超集,支持更加丰富的数据类型,并且保持了对 XPath...
2、理解XPath的类型系统和序列类型等相关概念,掌握XPath表达式语法和执行语义,能够熟练地、灵活地运用各种关系轴、判定谓词和XPath基本函数编写查询表达式。 3、掌握XSLT文档中基本语法单元的使用,比如模板的定义...
XPath 1.0 和 XPath 2.0 是两个主要的版本,其中XPath 2.0 是 XPath 1.0 的超集,并与之保持良好的后向兼容性。XPath 支持的功能强大,可以用来在XML文档结构中进行复杂的查找与匹配操作。它被广泛应用于DOM、XSLT、...
2、理解XPath的类型系统和序列类型等相关概念,掌握XPath表达式语法和执行语义,能够熟练地、灵活地运用各种关系轴、判定谓词和XPath基本函数编写查询表达式。 3、掌握XSLT文档中基本语法单元的使用,比如模板的定义...
为了克服这些局限性,我们需要一种更加强大的逻辑系统——谓词逻辑。 #### 三、谓词逻辑基本概念 ##### 1. 基本术语 - **个体词**:代表具体或抽象的对象,如“小王”、“茉莉花”等。 - **谓词**:用于描述个...
XPath的语法包括: 1. **节点类型**:XPath可以选取元素(element)、属性(attribute)、文本(text)、命名空间(namespace)、处理指令(processing-instruction)和注释(comment)节点。 2. **路径表达式**:...
当变量可以绑定时,我们称之为一阶谓词逻辑,而当谓词本身可以绑定时,我们称之为二阶谓词逻辑。 在一阶谓词逻辑中,我们可以使用 Horn 子句来表示命题。Horn 子句是一种特殊的计算用形式,非常适用于程序设计,如...
谓词逻辑归结是建立在逻辑基础之上的,特别是弗雷格的算术基础和希尔伯特的形式主义之上。这个推理系统通过消除逻辑矛盾,将一系列前提转换为更简洁、更易于处理的形式,以此来探究其真理性。 谓词逻辑,也称为一阶...
位置路径的缩写语法允许简化书写路径: - `child::*`可以省略为`*`。 - `attribute::*`可以省略为`@`。 - `//`等价于`descendant-or-self::node()`。 - `.`代表当前节点(`self::node()`的简写)。 - `..`代表当前节点...
谓词逻辑是离散数学中的一个重要分支,它扩展了命题逻辑的能力,允许我们表达更为复杂的逻辑关系和数量关系。在命题逻辑中,我们只能处理独立的命题,无法直接描述命题之间的联系或者涉及多个对象的关系。这导致了...
- **路径表达式**:使用斜杠(/)、双斜杠(//)和其他路径运算符来指定节点位置。 - **函数调用**:提供了丰富的内置函数,例如 `string()`、`number()`、`boolean()` 等,用于操作数据。 - **谓词**:用于过滤节点...
基于谓词逻辑的归结原理是将复杂的逻辑问题转化为一系列子句的过程,这些子句最终通过归结操作得到矛盾,从而证明原命题的真实性。 归结过程主要涉及以下关键环节: 1. 子句变换:这是将原始命题转化为子句集的...