计数中的Xquery问题

时间:2010-11-18 06:32:32

标签: xquery

alt text

使用XQuery:

列出多个支持的每个游戏的ID,名称,发布商和平台 平台。平台应包含在一个用逗号分隔的XML标记中。

我在思考如何计算模式时遇到问题。我需要计算的平台如上图所示。 Playstation3,XBox是一款游戏的模板。在框外,在它下面,给出了那种格式的数据。请帮助我。

2 个答案:

答案 0 :(得分:0)

如果您的XQuery引擎支持XPath 2.0,您可以使用tokenize函数来计算逗号分隔列表的项目:

count(tokenize("Playstation3,XBox",","))

这有帮助吗?如果没有,请您提供XML输入和预期结果的完整示例。谢谢。

答案 1 :(得分:0)

这个XQuery:

element result {
   for $game in /games/game[tokenize(Platform,',')[2]]
   return element game {
             $game/(ID|Name|Publisher|Platform)
          }
}

使用此输入:

<games>
    <game>
        <ID>B003JVKHEQ</ID>
        <Name>Duty</Name>
        <Publisher>AC</Publisher>
        <ESRB>M</ESRB>
        <Motion>False</Motion>
        <Platform>Playstation3,XBox</Platform>
    </game>
</games>

输出:

<result>
    <game>
        <ID>B003JVKHEQ</ID>
        <Name>Duty</Name>
        <Publisher>AC</Publisher>
        <Platform>Playstation3,XBox</Platform>
    </game>
</result>

修改:使用文字结果元素

 <result>{
   for $game in /games/game[tokenize(Platform,',')[2]]
   return  <game>{
              $game/(ID|Name|Publisher|Platform)
          }</game>
}</result>