私は次のxmlファイルを持っています
<site>
<people>
<person id="person0">
<emailaddress>0@concordia.ca</emailaddress>
</person>
<person id="person1">
<emailaddress>1@concordia.ca</emailaddress>
</person>
<person id="person2">
<emailaddress>2@concordia.ca</emailaddress>
</person>
</people>
<closed_auctions>
<closed_auction>
<annotation>123</annotation>
<seller person="person1"/>
</closed_auction>
<closed_auction>
<annotation></annotation>
<seller person="person2"/>
</closed_auction>
<closed_auction>
<annotation></annotation>
<seller person="person3"/>
</closed_auction>
</closed_auctions>
</site>
販売者の部分に個人IDへの参照が含まれていることがわかるように、人のリストとオークションのリストがあります。
すべてのclosed_auctionタグを確認したいのですが、空でないアノテーションタグがある場合は、販売者の個人IDを取得し、この販売者の(この個人の)メールアドレスを印刷する必要があります。
現在のクエリは次のようになります。
/ site / people / person [@ id = / site / closed_auctions / closed_auction [annotation / text()] / Seller / @ person] / emailaddress / text()
このクエリは、小さいxmlファイルサイズではうまく機能しますが、大きいxmlファイルでは終了しません。(問題はネストされたxpathに関連していると思いますが、他の方法を見つけることができません)
改善を提案していただけませんか
ありがとうございました