2010-11-20 17 views
1

Je souhaite obtenir uniquement les éléments dont le nombre est supérieur à Un. Que dois-je utiliser Tokenizer ne fonctionne pas, je suppose ici ...doute dans les arguments

<games> 
    <game> 
     <Motion>False</Motion> 
     <Platform>Playstation3,XBox, typer</Platform> 
    </game> 
    <game> 
     <Motion>False</Motion> 
     <Platform>Playstation3</Platform> 
    </game> 
</games> 

Répondre

0

Vous pouvez utiliser la fonction contains():

doc("games.xml")//game[contains(Platform, ",")] 

EDIT: La requête que vous avez affichée ne correspond pas à votre balisage XML . Essayez quelque chose comme:

for $z in doc("videogames.xml")//game[contains(Platform, ",")] 
return 
<Platform>{$z/Motion}</Platform> 
+0

où dois-je mettre plus de condition? – user507087

+0

@ user507087, désolé, je dois avoir mal compris. Je pensais que vous vouliez les éléments '' avec plus d'une plate-forme, c'est-à-dire dont les éléments '' contiennent un caractère de virgule. Alors qu'est-ce que tu veux exactement? :) –

+0

Dans mon entrée ci-dessus donnée dans la question, quand je cours la requête, je devrais obtenir seulement les éléments supérieurs du jeu qui a plus de 1 plate-forme playstation3, Xbox, typer. Il devrait rejeter l'autre comme le nombre de plates-formes dans ce cas est 1 seulement. – user507087

0

Je veux obtenir que les éléments dont le nombre est supérieur à un. Quel dois-je utiliser? Tokenizer ne fonctionne pas Je suppose ici ...

Je suppose que vous ne voulez travailler avec des jeux qui sont disponibles pour plus d'une plate-forme.

Utilisez ce test:

/*/game[tokenize(Platform, ',')[2]] 

Ainsi, ce XQuery simple,:

for $g in /*/game[tokenize(Platform, ',')[2]] 
    return $g 

lorsqu'il est appliqué sur le document XML fourni:

<games> 
    <game> 
    <Motion>False</Motion> 
    <Platform>Playstation3,XBox, typer</Platform> 
    </game> 
    <game> 
    <Motion>False</Motion> 
    <Platform>Playstation3</Platform> 
    </game> 
</games> 

retours:

<game> 
    <Motion>False</Motion> 
    <Platform>Playstation3,XBox, typer</Platform> 
</game>