曝光台 注意防骗
网曝天猫店富美金盛家居专营店坑蒙拐骗欺诈消费者
• 正数
• 负数
• 正零
• 负零
• 正无穷大
• 负无穷大
• 不是一个数(“N a N”)
运算符+、-、*、d i v和m o d可以用于数值运算,括号将会影响到数学运算顺序。
由XPa t h提供的最简单的函数是Position( ),它可用来对正被讨论的元素位置进行简要的评
估。例如,我们可以利用它仅选择上下文元素的第一个< B o o k >子元素,使用下面的谓词:
我们稍后将会看到谓语如何适用于XPa t h表达式。
由于该函数经常被使用,它被隐式地用来表示数值中或者数字常量中函数结果的位置,所
以上面谓词可以简写为:
在XPa t h标准中谓词函数的全集被分为下面几类:
• 节点集合函数
• 字符串函数
• 布尔函数
• 数值函数
我们将依次看一下这几种类型,不过在列出这些函数之前,我们现复习一下它们所需的一
些基本定义。
(1) 定义
许多函数在当前的表达式评估上下文环境中以某种方式执行。这个上下文包括下面几种上
下文节点(我们已经知道,它是正被评估的节点,或者如果没有指定节点的话是根节点)。
第8章链接和查询使用271 下载
• 上下文大小—上下文中节点的全部合计,使用上下文节点及轴来决定。
• 上下文位置—上下文中节点的当前位置,它小于或者等于上下文大小。
• 变量绑定—在变量名字和值之间的映射,这里值为对象。
• 函数库—函数名字和函数之间的映射。
• 命名空间声明—从命名空间前缀到U R I之间的映射。
任何给定节点有一个字符串-值,每种类型节点的字符串-值都存在,可以来自正被讨论的节
点的一部分,或者也可以由它的下一级的字符串-值生成。
一些类型的节点有一个扩展名,形式为: M y N a m e s p a c e : M y N a m e。其中M y N a m e s p a c e部分
称为命名空间- U R I,M y n a m e部分称为本地部分。
现在让我们继续看一下函数。
(2) 节点集合函数
这些函数与多个节点有关,如表8 - 3所示。
表8 - 3
函数(返回类型,名和参数) 说明
number last( ) 返回表达式评估上下文的上下文大小
number position( ) 返回表达式评估上下文的上下文位置
number count(Node-set) 返回讨论节点集合的节点数目
node-set id(object) 返回一个节点集合,该集合中节点的I D属性和o b j e c t参数匹
配。object 可以是I D的空格分开的字符串,或者节点集自身,
这种情况下, I D的集合由那些节点的字符串-值构成
string local-name(node-set?) 返回提供(按文档顺序)的节点集合中第一个节点(或者
上下文节点,如果参数被忽略的话)的扩展名的本地部分。
空节点集合或者不具备命名空间的节点将返回空字符串
s t r i n g - n a m e s p a c e - u r i ( n o d e - s e t ? ) 返回提供(按文档顺序)的节点集合中第一个节点(或者上
下文节点,如果参数被忽略的话)的扩展名的命名空间部分。
空节点集合或者不具备命名空间的节点将返回空字符串
string name(node-set?) 返回QNa m e,表示提供(按文档顺序)的节点集合中第一
个节点(或者上下文节点,如果参数被忽略的话)的扩展名
(3) 字符串函数
字符串函数将对字符串进行操作或者返回字符串(参见表8 - 4)。
表8 - 4
函数(返回类型,名和参数) 说明
string string(Object?) 返回指定对象的stringified 版本,或者当没有指定节点的时
候,上下文节点的字符串-值。如果对象是一个节点集合,那
么将返回该集合中(按文档顺序)第一个节点的字符串-值。
数值返回其字符串表示,布尔值返回t r u e或f a l s e,其他类型的
对象返回它们本身支持的值
string concat(string,string, string*) 返回参数的连接结果
272使用XML 高级编程
下载
(续)
函数(返回类型,名和参数) 说明
boolean starts-with( string, string) 如果第一个字符串以第二个字符串开始,返回t r u e,否则返
回f a l s e
boolean contains(string, string) 如果第一个字符串包含第二个字符串,返回t r u e,否则返回
f a l s e
string Substring-before(string, string) 如果第一个字符串包含第二个字符串,返回第一个字符串出
现在第二个字符串之前的部分,否则返回一个空字符串
string substring-after(string, string) 如果第一个字符串包含第二个字符串,返回第一个字符串出
现在第二个字符串之后的部分,否则返回一个空字符串
string substring(string, number, number) 返回字符串的一部分,它以第一个数字索引的字符开始,并
由第二个数字指定长度。如果第二个数字缺省,返回的字符串
将包含从第一个数字索引的字符开始,到原始字符串结束的部
分。字符将从开始被索引,这里,第一个字符是字符1
number string-length(string?) 返回指定字符串的字符数目,如果没有提供字符串,则返回
上下文节点的字符串-值的字符数目
string normalize-space( string?) 去除前后空白空间,或者使用单个字符来替代空白,如果没
有指定对象,则对上下文节点的字符串-值进行操作
string translate(string, string, string) 根据第二个字符串和第三个字符串来替代所提供的第一个
字符串中的字符。第一个字符串中的每个字符和第二个字符
串中的字符相比较,如果匹配,将其替换,替换字符位于第
三个字符串中,它的位置和第二个字符串中匹配字符的位置
相匹配。如果第三个字符串中该位置没有字符(它将会发生
在第三个字符串短于第二个字符串的时候),则把字符去掉
即可
(4) 布尔函数
布尔函数均返回布尔值(参见表8 - 5)。
表8 - 5
函数(返回类型,名和参数) 说明
booelan boolean(Object) 基于提供的对象返回布尔值,支配这种转换的规则我们前面
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:
XML高级编程上(95)