以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XQuery/XLink/XPointer/ 』  (http://bbs.xml.org.cn/list.asp?boardid=14)
----  一个Xquery语法不太明白 distinct-values(doc('/db/library/biblio.rdf')//dc:creator)[/  (http://bbs.xml.org.cn/dispbbs.asp?boardid=14&rootid=&id=34521)


--  作者:flyfoxs
--  发布时间:6/17/2006 12:50:00 PM

--  一个Xquery语法不太明白 distinct-values(doc('/db/library/biblio.rdf')//dc:creator)[/
下面用红字标明的这一句是什么意思。也就是distinct-values doc dec:creator分别是什么意思。
distinct-values(doc('/db/library/biblio.rdf')//dc:creator)


xquery version "1.0";
declare namespace rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
declare namespace dc="http://purl.org/dc/elements/1.1/";

for $p in distinct-values(doc('/db/library/biblio.rdf')//dc:creator)
let $books := //rdf:Description[dc:creator&=$p]
return
        <result>
                <creator titles="{count($books)}">{$p}</creator>
                {for $b in $books return $b/dc:title}
        </result>


--  作者:flyfoxs
--  发布时间:6/19/2006 10:06:00 PM

--  
for $i in document("bib.xml")/bib/vendor/book


不知道上面的document与上面的doc  (一楼的红色字的那一行出现的)有什么区别?是不是一样的?


--  作者:flyfoxs
--  发布时间:6/20/2006 6:21:00 PM

--  
for $p in distinct-values(doc('/db/library/biblio.rdf')//dc:creator)

经过几天见缝插针的学习,
有点明白上面的意思了

doc('/db/library/biblio.rdf')是得到根结点,也就是DOM中的documnet


//dc:creator 是一个Xpath语法,dc是命名空间


distinct-values是一个Xpath函数,他把输入的一系列节点,过滤去相同的,和数据库里面的distinct有点像。


distinct-values(doc('/db/library/biblio.rdf')//dc:creator)最后返回的是一个没有相同结点的结点集合了。


注:以上全是自己揣摩得到 的,没有经过正规考证。



--  作者:SATOKO2006
--  发布时间:6/21/2006 12:40:00 PM

--  
好久没看Xquery了,大概是这个意思吧,可以在XMLSPY里面自己test一下三
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms