transformer uniquement les éléments spécifiés, en laissant tomber le reste
Question
J'essaie de développer une feuille de style XSLT qui transformera un xml en un autre en gardant à l'esprit:
- Par défaut, la feuille de style ne doit rien afficher pour chaque élément (pas même le texte).
- S'il existe une correspondance de modèle explicite pour un élément, copiez-le, ses attributs et tous ses sous-éléments (et leurs attributs).
En d'autres termes, l'identité ne transforme que les éléments explicitement spécifiés.
La solution
Eh bien, ne rien faire pour la plupart, sûrement quelque chose comme:
<xsl:template match="/*">
<xsl:copy>
<xsl:apply-templates select="*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*">
<xsl:apply-templates select="*"/>
</xsl:template>
Ajoutez ensuite des correspondances pour ce que vous voulez :
<xsl:template match="Foo | Bar">
<xsl:copy-of select="."/>
</xsl:template>
Toutefois, cela semble être une exigence très inhabituelle . Normalement, vous utilisez simplement des correspondances qui accèdent au contenu connu grâce à la connaissance du code XML.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow