XSLT - Comment garder seulement voulu éléments de XML

J'ai un certain nombre de fichiers XML qui contiennent beaucoup de frais généraux. Je tiens à les garder seulement environ 20 éléments spécifiques et filtrer rien d'autre. Je connais tous les noms des éléments que je veux garder, je sais aussi qu'ils soient ou non des éléments d'enfant et qui sont leurs parents. Ces éléments que je veux garder après la transformation doivent toujours avoir leur origine hiérarchique de placement.

E. g. Je veux garder SEULEMENT

<ns:currency>

dans;

<ns:stuff>
 <ns:things>
  <ns:currency>somecurrency</ns:currency>
  <ns:currency_code/>
  <ns:currency_code2/>
  <ns:currency_code3/>
  <ns:currency_code4/>
 </ns:things>
</ns:stuff>

Et la faire ressembler à ceci;

<ns:stuff>
 <ns:things>
  <ns:currency>somecurrency</ns:currency>
 </ns:things>
</ns:stuff>

Quelle serait la meilleure manière de construire une transformation XSLT pour accomplir cette?

  • Double Possible de Comment faire pour supprimer des éléments de xml en utilisant la feuille de style xslt avec et xsltproc?
  • Dans cet exemple, vous spécifiez les éléments à sortir, j'ai besoin de spécifier les éléments à quitter le filtre et rien d'autre.
  • Je suis d'accord avec MarcoS. C'est un doublon. L'on a accepté la réponse est à peu près ce que vous avez besoin
  • Pour l'exemple que j'ai donné, vous pouvez utiliser cette solution, j'en conviens. Mais pour la question générale que j'ai donné, il ne fonctionne pas. Comme je l'ai expliqué, j'ai besoin de la solution inverse de cela, j'ai besoin de spécifier ce que je veux garder, pas ce que je veux supprimer; Il y a beaucoup plus d'éléments que j'ai besoin de l'enlever que j'ai besoin de garder, ainsi, il ne serait pas logique de spécifier toutes celles que je veux supprimer.
  • Peut-être que vous pouvez essayer de revenir le corps de ces deux modèles...
  • Je ne vois pas comment cela pourrait fonctionner. Peut-être que je ne vous comprends bien, vous avez un exemple?
  • Bonne question, +1. Voir ma réponse pour une solution générale qui peut être utilisé pour conserver tout élément dont le nom est dans une "liste blanche" et aussi de préserver les relations structurelles de ces éléments dans le document. Vous pouvez toujours utiliser cette transformation pour tout ce genre de tâche.
  • Également ajouté des explications détaillées. 🙂

InformationsquelleAutor cc0 | 2011-04-26