だから私はこれらの2つのXMLファイルを持っています:
data.xml
<datas>
<data id="1"><place>Mu</place></data>
<data id="2"><place>Atlantis</place></data>
...
<data id="28492"><place>Mu</place></data>
</datas>
ingrs.xml
<ingrs>
<ingr id="1">...</ingr>
<ingr id="2">...</ingr>
...
<ingr id="83882">...</ingr>
</ingrs>
最初に行うことは、必要なデータの ID のみを保持することです。しかし、ファイルの 83882 個の ingr をスキャンする代わりに、同じ id (一意) を持つ ingr をすばやく見つける for ステートメントを実行したいと考えています。
let $ids := //data[./place = 'Mu']/@id return
for $i in //ingr
where() (: what to do here ? Something like $i/@id = $ids :)
return $i