[XSLT] Création d'un filtre selon la valeur d'un attribut
Bonjour,
je souhaiterai recuperer une partie d'un flux XML. toutes balises XML aillant une class="secure" comme attribut ainsi que les noeuds qu'elle contient.
voici mon code XML :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <?xml version="1.0"?>
<Test>touctouc
<balise1 class="secure">alors!
<b1> test1 <autre>tiens tiens!</autre></b1>
<b2> test2 </b2>
<b3> test3 </b3>
</balise1>
<balise2>rien de special</balise2>
<balise3 class="secure">
<b5> donnee1 </b5>
<b6> donnee2 </b6>
</balise3>
</Test> |
et le code XSLT que j'ai "bricollé" :aie:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0"
encoding="UTF-8" indent="yes"/>
<xsl:template match="node()[@class='secure']">
<xsl:copy>
<xsl:apply-templates select="descendant-or-self::node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="node()">
<xsl:for-each select="node()[@class ='secure']">
<xsl:copy>
<xsl:value-of select="descendant-or-self::node()" />
</xsl:copy>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet> |
PS: ça m'affiche bien les balises contenant l'attribut class="secure" mais pas celle des noeuds qu'elle contient.
Merci d'avance à celui qui poura m'aider:roll: