82 votes

XPath sélectionne un nœud dont la valeur de l'attribut est égale à la valeur de l'attribut d'un autre nœud.

<grand id="grand">
  <parent>
    <child age="18" id="#not-grand"/>
    <child age="20" id="#grand"/> <!-- This is what I want to locate -->
  </parent>
</grand>

Quelqu'un peut-il me dire comment exprimer pour localiser le deuxième enfant ?

Ça ne marche pas...

"/grand/parent/child[@id=concat('#',/grand/@id)]/@age"

Merci.


Je suis désolé. L'expression est correcte. J'ai trouvé des problèmes dans d'autres domaines, pas dans l'expression elle-même.

88voto

Vaman Kulkarni Points 1426

Ce XPath est spécifique à l'extrait de code que vous avez fourni. Pour sélectionner <child> dont l'identifiant est #grand vous pouvez écrire //child[@id='#grand'] .

Pour obtenir l'âge //child[@id='#grand']/@age

J'espère que cela vous aidera

29voto

MarcoS Points 7305

Je pense que c'est ce que vous voulez :

/grand/parent/child[@id="#grand"]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X