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
A l'aide d'un XSL , je veux renommer toutes les balises <ancien> en <nouveau> uniquement dans les branches qui contiennent "oui"
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>
Mon xsl qui ne marche pas:
Je précise que le renommage doit fonctionner sur n'importe qu'elle balises <ancien> dans n'importe quelle branche contenant 'oui'.
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 n'ai peut etre pas pris le problème de la bonne façon.
Merci de votre aide.
YB
![]()
Partager