关于X-QUERY
XML Query(XQuery)是在 XML 数据中搜索特定信息的功能强大的新方法。
FLWR 是 FOR-LET-WHERE-RETURN 的缩写,它描述了典型 XQuery 的结构。在 FLWR 语句中,数据被绑定到变量,然后,后续步骤使用该变量。例如,使用下面的语句:
下面是常用到的函数:
函数:
1. 数学:
+, -, *, div, idiv, mod, =, !=, <, >, <=, >= floor(), ceiling(), round(), count(), min(), max(), avg(), sum()
用div表示除法,而不是用斜线,因为斜线表示XPath分步表达式。idiv是只能进行整数除法的特殊操作符,它返回一个整数值,忽略剩余的小数部分。
2. 字符串和常规表达式:
compare(), concat(), starts-with(), ends-with(), contains(), substring(), string-length(), substring-before(), substring-after(), normalize-space(), upper-case(), lower-case(), translate(), matches(), replace(), tokenize()
compare()指定字符串顺序。translate() 执行一个特殊的字符映射。matches()、replace()和tokenize()使用常规表达式来查找、处理及拆分字符串值。
3. 日期和时间:
current-date(), current-time(), current-dateTime() +, -, div eq, ne, lt, gt, le, gt
XQuery有许多特殊类型的日期和时间值,如持续期间duration、日期时间dateTime、日期date和时间time。多数情况下对它们进行算术运算和比较操作,就好像它们是数值一样。两个字母的单词缩写表示等于、不等于、小于、大于、小于等于和大于等于。
4. XML节点和Qnames:
node-kind(), node-name(), base-uri() eq, ne, is, isnot, get-local-name-from-QName(), get-namespace-from-QName() deep-equal() >>, <<
node-kind()返回节点(即"元素")的类型。node-name()返回节点的Qname,如果存在的话。base-uri()返回该节点的URI。
还可以用eq和ne比较节点和Qname值(比较值),或用is和isnot比较(比较标识符)。deep-equal()根据节点完整的递归内容来比较两个节点。
按照文档的顺序,如果操作符<<左边的操作对象排在右边的操作对象的前面,则操作符返回真(true)。操作符>>用于后序比较。
5. 序列:
item-at(), index-of(), empty(), exists(), distinct-nodes(), distinct-values(), insert(), remove(), subsequence(), unordered().position(), last()
item-at()返回指定位置的条目,而index-of()试图找到给定条目的位置。如果序列是空的,则empty()返回真,而如果序列不是空的,则exists()返回真。distinct-nodes()返回删除了完全相同的节点的序列,而distinct- values()返回删除了所有完全相同的原子值的序列。unordered()使查询引擎能够进行优化而不保留顺序。position()返回当前被处理的上下文条目的位置。last()返回最后一个条目的索引。
6. 类型转换:
string(), data(), decimal(), boolean()
在可能的情况下,这些函数返回指定类型的节点。data()返回节点的 "类型值"。
7. 布尔函数:
true(), false(), not()
在XQuery 中没有关键字"true"(真)和"false"(假),而是用true()和false() 函数。not()返回变量的布尔非值。
8. 输入: document(), input(), collection()
document(), input(), collection()
document()根据URI参数返回节点的文档。collection()根据字符串参数(也许是多个文档)返回一个集合。input()返回一组由引擎提供的通用输入节点。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
如何用XUL进行XQuery语言编写?
自从和XML数据库合作以来,XQuery获得了巨大的牵引力,但其最薄弱的一环就是写入数据库还有很大局限性。应用程序有时必须创建多种XML数据库或者写回整个图表才能进行简单的数据变化。
-
XQuery:数据集成领域的精耕细作者
XQuery标准的发展历程对我们很有启发意义,TT SOA多年以来对此也有详细描述。XQuery诞生于XML和Web服务的早期,目的是向刚开始使用XML数据……
-
XQuery:数据集成专家的秘密武器?
在简化集成的工作中,一些团队已经开始尝试用新语言来处理数据。那么最初在XML和Web服务推进中占据很大部分的XQuery,是不是已经在这种混乱之中迷失了呢?
-
如何利用XUL进行XQuery语言编写?
自从和XML数据库合作以来,XQuery获得了巨大的牵引力,但其最薄弱的一环就是写入数据库还有很大局限性……