• 热门标签

当前位置: 主页 > 航空资料 > 计算机 >

时间:2010-08-09 13:05来源:蓝天飞行翻译 作者:admin
曝光台 注意防骗 网曝天猫店富美金盛家居专营店坑蒙拐骗欺诈消费者

讨论过
boolean not(boolean) 如果命题是错误的,返回t r u e,否则,返回f a l s e
boolean true( ) 返回t r u e
boolean false( ) 返回f a l s e
boolean lang(string) 如果上下文节点的语言(可以通过其x m l : l a n g属性得到)和
指定的语言相同,返回t r u e。如果语言不同或者该属性没有出
现在该节点中,返回f a l s e
(5) 数值函数
这些函数基于参数返回数值(参见表8 - 6)。
第8章链接和查询使用273 下载
表8 - 6
函数(返回类型,名和参数) 说明
number number(object?) 将字符串转换成与它们等价的数字(根据I E E E 7 5 4“截取到
最相近的值”规则)或者转换成N a N,布尔值1(t r u e)或0
(f a l s e),使用节点集合的第一个节点(按照文档顺序)转成等
价的数值(和字符串中相同的方法),或者其他的对象基于它
们的类型转为数值
number sum(node-set) 返回由节点集合中节点的字符串-值表示的数值总和
number floor(number) 返回不大于命题的最大数值(接近于正无穷大)且是整数
number ceiling(number) 返回不小于命题的最小数值(接近于负无穷大)且是整数
number round(number) 返回和命题值最为接近的一个整数,如果两个整数符合这
个要求,则返回接近于正无穷大的值
我们稍后将看一些例子,这样会使命题的使用更为清楚。
4. 把它放在一起
一个位置集合规范采用下面的形式:
程序清单8 - 4 4
这样为了选择上下文元素的前三个< B o o k >子元素,我们采用:
程序清单8 - 4 5
注意如果这个表达式嵌入在一个标签(例如一个X L i n k指向一个X P o i n t e r)中,则避免使用
字符<和& :
程序清单8 - 4 6
一个X P o i n t e r程序段可以由一列被前向斜杠分割的位置集合定义。它由一些表达式开始,这
些表达式建立上下文节点—或者仅一个前向斜杠,表示上下文节点从文档元素开始,或者一
个缩写绝对位置(在我们讨论缩写时,将会提到),一个I D定位可以用来建立上下文节点。
这样,为了浏览我们的例子中第一个< B o o k >元素中< R e c S u b j C a t e g o r i e s >元素内第二个
< C a t e g o r y >元素,我们使用如下的定位:
程序清单8 - 4 7
哟,太容易了。让我们看一些缩写,它们可以用来缩短程序段标识符表达式。
274使用XML 高级编程
下载
5. 缩写
有些简单的方法用于指定X P a t h常使用的结构,这样你可以在定义X P o i n t e r程序段标识符时
利用它。
如果没有轴被指定,则假设一个子轴。下面两个程序段选择文档元素的第一个< B o o k >子元
素:
程序清单8 - 4 8
属性轴同样可以缩写—我们可以用@来代替a t t r i b u t e : :,由此,这两个程序段均选择第一
个< B o o k >元素的c o l o r属性:
程序清单8 - 4 9
一个通常的结构是/ d e s c e n d a n t - o r-self::node( )/ 它选择上下文节点的后代节点用于更深层次
的处理。不过,这种结构可以缩写成为/ /。下面两个例子选择文档中每个< Ti t l e >节点:
程序清单8 - 5 0
“.”缩写和self::node( )相同,下面两个定位指定了上下文节点的< Ti t l e >后代:
程序清单8 - 5 1
同样,“. .”缩写和parent::node( ) 相同。这样,下面两个定位指定了上下文父节点的所有
< Ti t l e >子节点:
程序清单8 - 5 2
最后,在一个谓词中,短语position( )=X可以使用X代替。下面两个定位指定了上下文节点
的第二个< Ti t l e >子节点:
程序清单8 - 5 3
如果我们将缩写应用于我们上面的例子,将是:
第8章链接和查询使用275 下载
程序清单8 - 5 4
我们知道可以把它表示成:
程序清单8 - 5 5
X P a t h提供了一种灵活的机制,用于将X M L文档的独立部分表示成所喜欢的间隔尺寸,甚至
减至文本元素的独立字符。X P o i n t e r作为该技术的杠杆允许X M L文档作为U R I定位的部分被指向。
并且,X P o i n t e r在两个重要方面扩展了X P a t h的功能。
8.4.2 XPointer对XPath的扩展
XPo i n t e r对X P a t h进行一些扩展,使之允许一些附加的功能。它引入了点和范围的概念作为
文档内对位置的描述(除X P a t h内节点结构之外),并提供了一些函数用来处理这些新的位置索
引。
1. 点
X P o i n t e r定义一个点位置概念,作为和节点的区别。不过,一个点位置可以是一个节点。它
也可以是字符内容内一个特殊的位置(例如,在< Ti t l e >元素的文本值的第三个字符)。点对于范
围的定义是有用的,我们下面将会看到这一点。
2. 范围
X P o i n t e r定义了范围位置的概念,它被定义成为X M L结构和两个点间的内容。注意,这样
会导致没有格式正规的部分,因为仅有一些元素的部分被包括在范围之内。例如,这种指定范
围的能力将会允许一个指针指向目标文档内一个特殊单词的所有事件(例如,作为一个搜索引
擎的输出)。一个范围可以这样声明:
程序清单8 - 5 6
这样,一个用来选择始于I D为b o o k 1的元素终于I D为b o o k 3的元素的范围,包含了落入其间
的按照文档顺序的所有内容,可以这样指定:
程序清单8 - 5 7
3. 附加函数
X P o i n t e r规范中有一些附加的函数,允许点和范围位置的生成和处理。让我们看一下其中三
个最重要的函数:string-range( ),here( )和unique( )。
276使用XML 高级编程
下载
函数string-range( )搜索目标文档内的文本,并返回所发现的目标字符串事件的范围位置。
例如,下面这个定位将返回c a t a l o g . x m l文档内字符串X M L的所有事件:
程序清单8 - 5 8
例如,这个函数可以用于搜索引擎中—每个单词的事件在X P o i n t e r内将是一个范围,允许
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML高级编程上(96)