Bonjour,
J'ai un document de la forme:
J'aimerais sélectionner les noeuds successifs pour lesquels k='cible' et ayant la même valeur de v.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <doc> <part> ... <tag k='cible' v='0'/> </part> <part> ... <tag k='cible' v='0'/> </part> <part> ... <tag k='cible' v='1'/> </part> <part> ... <tag k='cible' v='1'/> </part> <part> ... <tag k='cible' v='0'/> </part> </doc>
Ici j'obtiendrais 3 groupes :
- le premier contenant les deux premiers noeuds part car étant successifs avec la même valeur de v pour k='cible' (0)
- le deuxième contenant les noeuds part 3 et 4 car étant successifs avec la même valeur de v pour k='cible' (1)
- le troisième contenant le dernier noeud part où v='0' pour k='cible', mais qui ne doit pas se trouver dans le premier groupe car il n'est pas successif directement à ceux du premier groupe
Pour le moment, j'arrive à sélectionner les différentes valeurs de v quand k='cible' avec :
... mais ce ne répond pas à ma requête initiale. Cependant j'imagine qu'il doit là aussi falloir se servir de preceding.
//part/tag[@k='cible' and not( preceding::part/tag/@v = @v )]
Toute idée est la bienvenue,
Merci !
Partager