以文本方式查看主题 - W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL (http://bbs.xml.org.cn/index.asp) -- 『 XQuery/XLink/XPointer/ 』 (http://bbs.xml.org.cn/list.asp?boardid=14) ---- 请教XQuery中distinct-values()的问题 (http://bbs.xml.org.cn/dispbbs.asp?boardid=14&rootid=&id=15608) |
-- 作者:neushi -- 发布时间:3/15/2005 11:19:00 AM -- 请教XQuery中distinct-values()的问题 假设有这样一段XML文档: <peoples> <people id="1"><name>zhang</name></people> <people id="1"><name>zhang</name></people> <people id="2"><name>li </name></people> <people id="3"><name>zhao </name></people> </peoples> 里面由于有重复信息,我想把不同的人抽取出来 我希望的结果是 <people id="1"><name>zhang</name></people> <people id="2"><name>li </name></people> <people id="3"><name>zhao </name></people> distinct-nodes()返回全部4条记录!,而distinct-values()返回一堆字符串,结果都不是我想要的。 我查了一下,好像是现在的xquery draft将distinct-values函数的意义改了,这个函数原来的意思是返回不同值的一组节点,而现在的意思则是返回不同的text类型的值 实在想不通为什么w3c的标准为什么不重新增加一个函数,而改了原来函数的意思。 另外我写了一个函数用来产生我想要的结果,如下。但是可能效率不好,希望大侠能给推荐一个优化的方法,谢谢! declare function distinctNodes($allNodes as element() ) as element() { let $allNodes2 := $allNodes for $ret in $allNodes where not (some $ret2 in $allNodes2 satisfies $ret2 << $ret and $ret2=$ret) return $ret };
|
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
46.875ms |