Utilisation de XPath, comment puis-je sélectionner plusieurs éléments tout en conservant le chemin

StackOverflow https://stackoverflow.com/questions/2000077

  •  18-09-2019
  •  | 
  •  

Question

En supposant que j'ai un XML comme ceci:

<a>
  <b>
    <i>data</i>
    <ii>data</ii>
    <iii>data</iii>
  </b>
  <b>
    <i>data<i>
    <ii>data<ii>
    <iii>data</iii>
  </b>
</a>

En utilisant XPath, comment pourrais-je choisir le XML ci-dessus pour créer une structure comme ceci:

  <b>
    <i>data</i>
    <ii>data</ii>
  </b>
  <b>
    <i>data<i>
    <ii>data<ii>
  </b>  

Dans ce scénario, je suis seulement intéressé par i et ii, mais veulent conserver l'élément extérieur. Je ne peux pas utiliser XSLT, seules les déclarations XPATH.

Merci!

Était-ce utile?

La solution

Peut-être que je me trompe, mais je pensais XPATH sélectionne uniquement des séquences de « nœuds », dans son propre modèle abstrait. Je serais perdu sans XSLT ici.

Autres conseils

/a/*/i/..|/a/*/ii/..

"D'un, sélectionnez tous les enfants, puis sélectionnez tous les « i » éléments, puis sélectionnez le parent, ou d'une sélection de tous les enfants choisissent ensuite tous les « éléments ii », puis sélectionnez le parent.

Pour sélectionner tous les nœuds et y compris leurs parents, les noeuds extérieurs:

/a[i or ii]|/a/i|/a/ii|/b[i or ii]|/b/i|/b/ii
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top