Ton test est bon, c'est juste que dans une condition (ce qui est entre crochet), tout chemin non absolu est considéré comme relatif au contexte de l'élément sur lequel porte la condition.
Comme je doute que je me sois exprimé très clairement, voici ce que ça donne sur ton exemple précis :
Ici ta condition est vraie si :
- il existe au moins un élément xml/request/ListeClient/elt/id_client ayant la même valeur qu'un élément xml/user/id_client (if principal)
- et que cet élément xml/request/ListeClient/elt/id_client a un parent elt dont le fils id_client a la même valeur qu'un élément xml/request/ListeClient/elt/xml/user/id_client (condition entre crochets)
Donc on voit bien que ce n'est pas ce que tu veux
Il aurait fallut mettre soit un chemin relatif par rapport au contexte actuel : ...[id_client = current()/xml/user/id_client], soit un chemin absolu : ...[id_client = /xml/user/id_client].
Quoi qu'il en soit, tu peux virer cette condition parce que, bien écrite, elle est totalement équivalente à celle du if principal. Tu peux donc écrire :
xml/request/ListeClient/elt/id_client = xml/user/id_client
Partager