2010-05-10 7 views
1

En utilisant SoapUI (excellent outil pour WS en passant), je le résultat XML suivant:XPath ou XQuery et tester l'ordre

<code>c</code> 
<code>b</code> 
<code>a</code> 

Pour cet exemple ci-dessus, je voudrais tester la valeur du code sont commander asc. Bien sûr, pour cet échantillon le test échouera comme excepté.

Toute solution avec XQuery ou XPath (je peux utiliser groovy dans le test si nécessaire)

Merci à l'avance.

+0

Petite astuce: il vous suffit de surligner vos extraits XML et de code dans l'éditeur et de cliquer sur le bouton "code" (101 010) dans la barre d'outils de l'éditeur. Il formatera joliment le XML (ou le code), et vous n'aurez pas à vous tromper en remplaçant "<" par "<" et ainsi de suite - en plus, la syntaxe sera bien mise en évidence! –

+0

Bonne question (+1). Voir ma réponse pour une solution XPath 2.0/XQuery. :) –

Répondre

1

Utilisez (XQuery ou XPath 2.0):

not(code[. > following-sibling::code]) 
0

Deux autres façons:

empty(
    for $x at $p in code 
    where ($x > code[$p + 1]) 
    return $x 
) 

et

deep-equal(for $x in code order by $x return $x/data(.), code/data(.)) 

Mais la réponse de Dimitre semble le plus propre.