2 votes

Comment utiliser XPath pour trouver les éléments qui contiennent un élément enfant donné ?

J'ai ce XML :

<Catalog>
    <CUnit id="Bd">
        <Race value="T1"/>
    </CUnit>
    <CUnit id="Critter">
    </CUnit>
    <CUnit id="Ld">
        <Race value="T1"/>
    </CUnit>
</Catalog>

Je souhaite utiliser XPath pour extraire les éléments CUnit qui ont un élément enfant Race. Existe-t-il une méthode plus claire que celle-ci ?

CUnit/Race/..

3voto

BoltClock Points 249668

Utiliser un prédicat au lieu de cela :

//CUnit[Race]

2voto

Dimitre Novatchev Points 147842

Évitez d'utiliser le // pseudo-opérateur Le nœud de contexte n'est pas un nœud de contexte, car dans de nombreux moteurs XPath, il est mis en œuvre de manière très inefficace (il entraîne la traversée de l'ensemble du sous-arbre dont le nœud de contexte est la racine).

Lorsque la structure du document XML est bien connue, utilisez des chemins spécifiques.

Dans ce cas :

/*/CUnit[Race]

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