Bonjour,
je débute en XSL et je n'ai pas trouvé de solution à mon probleme pourtant tres basique.
J'ai un xml en entrée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
<?xml version="1.0" encoding="UTF-8"?>
<root>
	<oui>
		<ancien>1</ancien>
	</oui>
	<non>
		<ancien>8</ancien>
	</non>
</root>
A l'aide d'un XSL , je veux renommer toutes les balises <ancien> en <nouveau> uniquement dans les branches qui contiennent "oui"

Mon xsl qui ne marche pas:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 
    <xsl:template match="*">
        <xsl:copy>
            <xsl:copy-of select="@*"/>
            <xsl:apply-templates />
        </xsl:copy>
    </xsl:template>
 
      <xsl:template match="ancien">
        <xsl:if test= "contains(current(),'oui'))">  -- Syntaxe à affiner
           <xsl:element name="nouveau"> <xsl:value-of select="ancien"/> </xsl:element>
        </xsl:if>   
      </xsl:template>
 
 </xsl:stylesheet>
Je précise que le renommage doit fonctionner sur n'importe qu'elle balises <ancien> dans n'importe quelle branche contenant 'oui'.

Je n'ai peut etre pas pris le problème de la bonne façon.

Merci de votre aide.

YB