私は以下のように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>
私が書いたコードは次のとおりです。出力は重複した名前のリストでした。問題は、オレンジを食べた人の名前を数回ではなく1回だけ返すようにすることです。異なる値($ / 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)