Reputation: 47
Using XQuery:
List the id, name, publisher and platforms for each game that is supported by more than one platform. Platforms should be enclosed in one XML tag delimited by a comma.
I am getting problem in thinking that how do i count the patforms. The platforms that I need to count is given like in the above figure. Playstation3,XBox are the patlforms for one game. Outside the box, under it, that format of data is given.Please help me in it.
Upvotes: 0
Views: 435
Reputation:
This XQuery:
element result {
for $game in /games/game[tokenize(Platform,',')[2]]
return element game {
$game/(ID|Name|Publisher|Platform)
}
}
With this input:
<games>
<game>
<ID>B003JVKHEQ</ID>
<Name>Duty</Name>
<Publisher>AC</Publisher>
<ESRB>M</ESRB>
<Motion>False</Motion>
<Platform>Playstation3,XBox</Platform>
</game>
</games>
Output:
<result>
<game>
<ID>B003JVKHEQ</ID>
<Name>Duty</Name>
<Publisher>AC</Publisher>
<Platform>Playstation3,XBox</Platform>
</game>
</result>
Edit: With literal result elements
<result>{
for $game in /games/game[tokenize(Platform,',')[2]]
return <game>{
$game/(ID|Name|Publisher|Platform)
}</game>
}</result>
Upvotes: 0
Reputation: 5071
If your XQuery engine supports XPath 2.0 you can use the tokenize
function to count items of a comma separated list:
count(tokenize("Playstation3,XBox",","))
Does that help? If not could you please provide a complete example with XML input and expected result. Thank you.
Upvotes: 0