[XSLT] sortir tout un fichier XML sauf les éléments avec un certain élément enfant ?
Bonjour,
je débute tout juste en XSLT et j'aimerai faire quelque chose qui, je pense, est archi simple en XSLT... Si quelqu'un peut m'aider :
Mon XML source:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| <REG modele="Test" version="0.1">
<GENERIC>
<FIELDS sep=" "/>
<COMMANDS prefixe="." suffixe="." sep=" "/>
<MESSAGES prefixe="A" suffixe="Z"/>
</GENERIC>
<MODULE name="Information" desc="Infos">
<PARAM>
<NAME>Test1</NAME>
<DIFFUSION>parametre</DIFFUSION>
<CMD>01</CMD>
<DEFAULT>1</DEFAULT>
<TYPE>entier</TYPE>
<ADVANCED>0</ADVANCED>
<PRIORITY>0</PRIORITY>
<INVERSE>0</INVERSE>
<DESC>Test</DESC>
</PARAM>
<PARAM>
<NAME>Test1</NAME>
<DIFFUSION>normal</DIFFUSION>
<CMD>01</CMD>
<DEFAULT>1</DEFAULT>
<TYPE>entier</TYPE>
<ADVANCED>0</ADVANCED>
<PRIORITY>0</PRIORITY>
<INVERSE>0</INVERSE>
<DESC>Test</DESC>
</PARAM>
</MODULE>
</REG> |
Ce que je voudrai, c'est tout récupérer en sortie à l'exception des éléments qui ne contiennent pas
Code:
<DIFFUSION>normal</DIFFUSION>
.
J'ai commencé avec ça :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <xsl:output method="xml" indent="yes"/>
<!-- Recopie les noeuds -->
<xsl:template match="*">
<xsl:copy>
<xsl:apply-templates select="*|@*|text()"/>
</xsl:copy>
</xsl:template>
<!-- Recopie les noeuds -->
<!-- Recopie les attributs -->
<xsl:template match="@*">
<xsl:attribute name="{name()}">
<xsl:apply-templates select="*|@*|text()"/>
</xsl:attribute>
</xsl:template>
<!-- Recopie les attributs --> |
Ca ressort bien tout... mais comment ensuite empecher de sortir tous les <PARAM/> que je ne veux pas ?