Comment faire pour supprimer les éléments indésirables et des attributs de fichier XML à l'aide de XSLT

J'ai un fichier XML , je veux le copier comme il est , mais je veux filtrer certains éléments indésirables et les attributs , par exemple, ce qui suit est le fichier d'origine :

<root>
<e1 att="test1" att2="test2"> Value</e1>
<e2 att="test1" att2="test2"> Value 2 <inner class='i'>inner</inner></e2>
<e3 att="test1" att2="test2"> Value 3</e3>

</root>

Après la filtration ( e3 élément et att2 attribut ont été supprimés ) :

<root>
<e1 att="test1" > Value</e1>
<e2 att="test1" > Value 2 <inner class='i'>inner</inner></e2>
</root>

Notes:

  • Je préfère utiliser ( pour chaque élément au lieu de apply-templates si possible )
  • J'ai quelques problèmes avec xsl:element et xsl:attribute puisque je ne pouvais pas écrire le nœud actuel nom

Grâce

Pourquoi préférez-vous utiliser for-each au lieu de apply-templates?
Je pense que "j'ai quelques problèmes avec xsl:element et xsl:attribute..." les points à certains des racines plus profondes question(s).
Il n'est pas clair si vous êtes à la recherche d'une solution générale (éléments inconnus nom) ou spécifique (filtre e3). La réponse que j'ai fourni, il vous aidera dans le premier cas, même si il est facile de l'adapter à un cas spécifique.
Je pense que pour chacun d'eux est plus proche des langages de programmation que de la apply-templates ,
Il est normal de penser que for-each est la voie naturelle pour résoudre la plupart des problèmes au début, mais je pense que vous trouverez que c'est complètement inutile comme vous devenez plus familier avec XSLT.

OriginalL'auteur Abdullah | 2011-05-12