我有2个xml文件如下:
staff.xml
<staff>
<person>
<PID>1</PID>
<name>John</name>
</person>
<person>
<PID>2</PID>
<name>Rain</name>
</person>
<person>
<PID>3</PID>
<name>Bain</name>
</person>
</staff>
fruit.xml
<fruit>
<fruitname PID="1" >Apple<fruitname>
<fruitname PID="1" >Orange<fruitname>
<fruitname PID="2" >Orange<fruitname>
</fruit>
我写的代码如下:输出是重复名称列表。现在的问题是我希望只返回一次而不是多次返回吃橙子的人的名字。是否可以执行类似返回不同值($/name)之类的操作,或者有没有其他方法可以删除重复项?
for $s in doc("staff.xml")//person
for $f in doc("fruit.xml")//fruitname
where $s/PID=$f/@PID and $/f[@type="orange"]
return $s/name
我尝试了类似下面的方法,但它将其更改为没有重复的原子值。但问题是我需要将输出作为元素而不是原子值。
distinct-values(
for $s in doc("staff.xml")//person
for $f in doc("fruit.xml")//fruitname
where $s/PID=$f/@PID and $/f[@type="orange"]
return $s/name)