- 浏览: 1344581 次
- 性别:
- 来自: 湖南澧縣
-
最新评论
-
虾米小尹:
不行啊!2.2-0.25=1.9500000000000002 ...
JavaScript浮点数运算 —— 精度问题 -
heluping000000:
引用String a= "abc",首先在 ...
String,到底创建了多少个对象? -
mack:
谢谢分享matcher.appendReplacement(s ...
string.replaceAll()中的特殊字符($ \)与matcher.appendReplacement -
wzt3309:
完全理解,比网上其他资料都要详细
String,到底创建了多少个对象? -
u014771876:
Java中十六进制转换 Integer.toHexString()
文章列表
XPath 示例
本主题回顾整个 XPath 参考中出现的语法示例。所有示例均基于本节后所附 《XPath 语法的示例
XML 文件》。
表达式
引用
./author
当前上下文中的所有 <author>
元素。注意,此表达式等效于下一行中的表达式。
author
当前上下文中的所有 <author>
元素。
first.name
当前上下文中的所有 <first. ...
- 2009-10-08 19:01
- 浏览 6243
- 评论(0)
位置路径示例
下面的示例说明位置路径的用法。
路径
说明
child::node()
选择上下文节点的所有子级,无论属于哪种节点类型。
attribute::name
选择上下文节点的 name
属性。
attribute::*
选择上下文节点的所有属性。
descendant::para
选择上下文节点的 <para>
元素子代。
ancestor::div
选择上下文节点 ...
- 2009-10-08 18:59
- 浏览 1962
- 评论(0)
谓词
谓词是一个 XPath
表达式,用于针对某个轴筛选节点集,并生成一个新的节点集。此筛选过程包括按顺序针对节点集中的每个节点计算该谓词。每次针对节点计算该谓词时:
上下文节点是当前计算的节点。
上下文大小节点集中正在计算的节点数。
上下文位置是上下文节点在节点集中的位置。
最后一个上下文(即节点集中上下文节点的上下文)相对于定位步骤中指定的轴浏览文档树的方向。通常,轴会按照正方向或反方向浏览树:
正轴是包含上下文节点或上下文节点之后的节点的轴。child::
、descendant::
、desce ...
- 2009-10-08 18:58
- 浏览 2202
- 评论(0)
节点测试
节点测试是 XPath 定位步骤唯一必选的部分。因此,了解节点测试对于成功使用 XPath 表达式至关重要。
有三种常见的节点测试类型:
名称测试,使用扩展名称以及该名称与指定轴的关系来标识要选择的节点。
节点类型测试,严格根据节点类型选择节点。
确定目标的处理指令测试,仅选择与指定类型匹配的处理指令节点。
名称测试
名称测试是最常见的一种节点测试形式,可以明确地指定要选择的节点的名称。但是,如果只指定节点名,不会自动选择相应的节点,因为文档树可能包含同
名的不同节点类型。为了选择相应的节 ...
- 2009-10-08 18:56
- 浏览 3593
- 评论(0)
轴
位置路径使用轴来指定定位步骤所选的节点与上下文节点之间的关系。
轴
说明
ancestor::
上下文节点的上级。
上下文节点的上级由上下文节点的父级以及父级的父级等组成;因此,ancestor::
轴总是包括根节点,除非上下文节点就是根节点。
ancestor-or-self::
上下文节点及其上级。
ancestor-or-self::
轴总是包括根节点。
attribute::
上下文节点的属性。
除非上下文节点为元素,否则,此轴将是空的。
...
- 2009-10-08 18:53
- 浏览 2893
- 评论(0)
定位步骤
定位步骤相对于上下文节点选择一组节点(节点集)。
定位步骤分为三个部分:可选轴、节点测试和可选谓词
。定位步骤的语法是轴名后接双冒号,然后接节点测试,最后是零个或多个谓词(每个谓词都放在方括
号中)
。此语法的最基本形式如下所示:
axis::nodetest[predicate]
axis
指定上下文节点与定位步骤所选的节点之间的树型关系
。也就是说,轴指示定位步骤从上下文节点开始的常规方向。在定位步骤中,轴是可选项。如果省略,轴默认为
child::
。另外,有几个轴具有快捷方式;例如“ ...
- 2009-10-08 18:51
- 浏览 5379
- 评论(0)
位置路径
位置路径是一种 XPath
表达式,用于选择相对于上下文节点的一组节点。计算位置路径表达式所得到的节点集,将包含位置路径指定的节点。位置路径可以以递归方式包含表达式,用来筛
选节点集。
在语法上,位置路径由一个或多个定位步骤组成,每个步骤通过正斜杠 (/
) 分隔
:
locationstep/locationstep/locationstep
每个定位步骤依次选择相对于上下文节点(即上一个定位步骤所选择的节点)的一组节点。通过这种方式表示的位置路径为相对位置路径。绝对位置路径从根
元素开始:
/locationste ...
- 2009-10-08 18:48
- 浏览 2010
- 评论(0)
集运算
XML 路径语言 (XPath) 支持集运算 |
。
Union (|) 运算符
|
(即 union)运算符返回两个操作数的联合,操作数必须是节点集。例如,//author | //publisher
返回的节点集结合了所有 //author
节点和所有 //publisher
节点。多个 union
运算符可以链接在一起,组合多个节点集。例如,//author | //publisher | //editor |
//book-seller
返回的节点集包含所有 //author
、//publisher
...
- 2009-10-08 18:45
- 浏览 1821
- 评论(0)
比较
要在 XPath 中比较两个对象,可以使用 =
测试是否相等,也可以使用 !=
测试是否不相等。
对于比较运算,必须正好提供两个操作数。比较的过程是计算每个操作数,然后根据需要将操作数转换为相同的类型。按照下面的“比较的优先级顺序”中所
述的过程完成比较。
所有元素和属性都是字符串,但是在进行数字比较时会自动被强制转换为整数值。在比较运算期间,文本数值会被强制转换为 long 或 double
类型,如下表所示。
文本类型
比较
示例
String
text(lvalue) op t ...
- 2009-10-08 18:44
- 浏览 2821
- 评论(0)
布尔、比较和集表达式
筛选模式可以包含布尔表达式、比较表达式和集表达式。
运算符
说明
and
逻辑与
or
逻辑或
not()
非
=
相等
!=
不相等
< 或 <
小于
<= 或 <=
小于或等于
> 或 >
大于
<= 或 > ...
- 2009-10-08 18:42
- 浏览 3628
- 评论(0)
筛选器和筛选模式
通过将筛选子句 [pattern] 添加到集合中,可以对任何集合应用约束和分支。筛选器类似于 SQL WHERE
子句。筛选器中包含的模式称为“筛选模式”。筛选模式计算为布尔值,对集合中的每个元素进行测试。集合中所有未通过筛选模式测试的元素将从结果集合中省
略。
为了方便起见,如果集合在筛选器内,若集合包含任何成员,则生成布尔值 TRUE,若集合为空,则生成 FALSE。author/degree
之类的表达式意味着,如果存在包含名为 <degree>
的子元素的 <author>
元素,集合到布尔 ...
- 2009-10-08 18:41
- 浏览 2142
- 评论(0)
XPath 集合
XPath
查询返回的集合在定义的范围内保留文档顺序
、层次结构和标识。也就是说,按照文档顺序返回元素集合,没有重复的元素
。因为根据定义,属性不排序
,所以,为特定元素返回的属性不进行明确地排序。
具有特定标记名的所有元素的集合使用标记名本身表示。限定方法可以通过使用句点和正斜杠 (./
)
表明元素是从当前上下文中选择,但是默认情况下将使用当前上下文,不必明确说明
。
示例:
表达式
引用
./first-name
所有 <first-name ...
- 2009-10-08 18:39
- 浏览 2601
- 评论(0)
运算符和特殊字符
XPath 表达式是使用下表中所示的运算符和特殊字符构造的。
/
子运算符;选择左侧集合的直接子级。此路径运算符出现在模式开头时,表示应从根节点选择该子级。
//
递归下降;在 ...
- 2009-10-08 18:36
- 浏览 2879
- 评论(0)
XPath 表达式的上下文
基本 XPath 表达式
以下是基本的 XPath 表达式类型:
1、当前上下文
以句点和正斜杠 (./) 作为前缀的表达式明确使用当前上下文作为上下文。例如,以下表达式引用当前上下文中的所有
<author>
元素:
./author
注意,此表达式等效于以下表达式:
author
2、文档根
以正斜杠 (/) 为前缀的表达式使用文档树的根
作为上下文。例如,以下表达式引用此 ...
- 2009-10-08 18:32
- 浏览 3630
- 评论(0)
存取
错误和跟踪
数值
字符串
AnyURI
逻辑
持续时间/日期/时间
QName
节点
序列
Context
存取函数
名称
说明
fn:node-name(node)
返回参数节点的节点名称。
fn:nilled(node)
返回是否拒绝参数节点的布尔值。
fn:data(item.item,...)
接受项目序列,并返回原子值序列。
fn:base- ...
- 2009-10-08 11:43
- 浏览 3163
- 评论(0)