Subject:Problem for finding XPath. Author:kiran Kumar Date:17 Dec 2005 05:59 AM Originally Posted: 17 Dec 2005 05:58 AM
I have nodes <br>
<markets><br>
<market id="20"><br>
<runner outcome-id="330"/><br>
<runner outcome-id="331"/><br>
</market><br>
<market id="21"><br>
<runner outcome-id="334"/><br>
<runner outcome-id="335"/><br>
</market><br>
<market id="22"><br>
<runner outcome-id="334"/><br>
<runner outcome-id="335"/><br>
</market><br>
<market id="23"><br>
<runner outcome-id="330"/><br>
<runner outcome-id="331"/><br>
</market><br>
<markets><br>
<br>
I want to have all markets-ids with same runner/@outcome-id<br>
For the above example the result should be
<markets><br>
<market-ids>23,20<market-ids><br>
<market-ids>21,22<market-ids><br>
</markets>
Can some one help me finding xquary for this.
Subject:Problem for finding XPath. Author:Minollo I. Date:18 Dec 2005 10:33 PM
In XQuery you could do something like this:
<markets>
{
for $market in /markets/market
let $allRunners := $market/runner/@outcome-id
for $market1 in $market/following-sibling::market
let $allRunners1 := $market1/runner/@outcome-id
where deep-equal($allRunners,$allRunners1)
return
<market-ids>
{concat($market/@id, ',', $market1/@id)}
</market-ids>
}
</markets>
(you may have to change the use of fn:deep-equal() if your conditions require different semantics)