可能重复:
Repeated data in a XML
如何获得在变量中不重复的()数据。
我使用这个功能:
.
.
.
let $person:= $hopital1/persona
for $seq in (1 to count($derechohabiente))
return
$person[$seq]
[not(xf:is-node-secuence-equal(.,$derechohabiente[position() < $seq])) ]
declare function xf:is-node-secuence-equal ( $node as node()? , $seq as node()*) as xs:boolean {
some $nodeInSeq in $seq satisfies fn:deep-equal($nodeInSeq/name, $node/ns0:name)
};
.
.
.
这是XML示例,我只想获取Joseph的信息,但我只得到不重复的数据,并且有一个人重复。
<?xml version="1.0"?>
<hospital>
<person>
<idee>1902</idee>
<name>Joseph</name>
<age>60</age>
<room>4</room>
<service>false</service>
</person>
<person>
<idee>3246</idee>
<name>John</name>
<age>34</age>
<room>0</room>
<service>false</service>
</person>
<person>
<idee>3246</idee>
<name>John</name>
<age>34</age>
<room>0</room>
<service>true</service>
</person>
<person>
<idee>3246</idee>
<name>John</name>
<age>34</age>
<room>5</room>
<service>true</service>
</person>
</hospital>
答案 0 :(得分:0)
我担心排除故障很困难。您的XML和XQuery根本没有对齐。例如,$ hopital1和$ derechohabiente是指什么?此外,在XQuery中,函数声明必须在主表达式之前,因此您的函数声明在“let ...”表达式之后出现会导致问题。