Bonjour à tous,
J'ai un fichier XML que je voudrais passer en CSV pour pouvoir importer les données sous Excel 2000 qui ne fait pas le XML (le rascal).
J'ai donc fait un XSL qui transforme le fichier en CSV. J'ai un petit souci d'arborescence, je m'explique :
Voici mon fichier XML :
Mon fichier xsl se présente comme suit :
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 <?xml version="1.0" encoding="ISO-8859-1"?> <Erreurs> <Erreur id="20"> <Libelle>Erreur 1</Libelle> <LibelleEcran>LIB</LibelleEcran> <Contextes> <Contexte id="0" msg="12" p2="0" p3="9" ecran="4"> <Desc>Par defaut</Desc> </Contexte> <Contexte id="1" msg="12" p2="0" p3="9" ecran="2"> <Desc>Deuxieme cas</Desc> </Contexte> </Contextes> </Erreur>
Il doit surement y avoir du code plus propre mais je dois dire que je ne suis pas du tout un expert XSL.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <?xml version="1.0"?> <xsl:stylesheet version = "1.0" xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:template match="/" > <xsl:for-each select="Erreurs"><xsl:for-each select="Erreur"><xsl:value-of select="@id"/>,<xsl:value-of select="Libelle"/>,<xsl:for-each select="Contextes"><xsl:for-each select="Contexte"><xsl:value-of select="@id"/>,<xsl:value-of select="@msg"/>,<xsl:value-of select="@p2"/>,<xsl:value-of select="@p3"/>,<xsl:value-of select="@ecran"/>,<xsl:value-of select="Desc"/>; </xsl:for-each> </xsl:for-each> </xsl:for-each> </xsl:for-each> </xsl:template> </xsl:stylesheet>
Le résultat donne :
or je voudrais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 20,Erreur1,0,12,0,9,4,Par defaut; 1,12,0,9,2,Deuxieme cas;
Quelqu'un voit-il comment faire ? J'imagine que c'est très simple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 20,Erreur1,0,12,0,9,4,Par defaut; 20,Erreur1,1,12,0,9,2,Deuxieme cas;
Merci d'avance !
Bonne journée
Partager