XML->XSL->CSV

Résolu
apple31 Messages postés 25 Statut Membre -  
apple31 Messages postés 25 Statut Membre -
Bonjour,

J'ai un petit problème pour transformer un fichier XML en CSV avec XSL

J'ai un fichier XML qui a ce format :
<AA>
   <A>
	<B>
		<C>X1</C
	</B>
	<B>
		<C>X2</C
	</B>
	<B>
		<C>X3</C
	</B>

  </A>

   <A>
	<B>
		<C>Y1</C
	</B>
	<B>
		<C>Y2</C
	</B>
	<B>
		<C>Y3</C
	</B>
   </A>
</AA>


Je voudrait faire un fichier XSL qui transforme ce fichier XML en fichier CSV au format suivant:

Colonne 1, Colonne 2, colonne 3
X1,X2,X3
Y1,Y2,Y3

voici le fichier XSL que j'ai créé :
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:output method="text" />


<xsl:template match="/">Colonne 1, Colonne 2, colonne 3

<xsl:for-each select="//A/B/C">
	<xsl:value-of select="." />,
</xsl:for-each>\n

</xsl:template>


</xsl:stylesheet>


Mais voici ce que ça me donne :

Colonne 1, Colonne 2, colonne 3
X1,X2,X3,Y1,Y2,Y3,
X1,X2,X3,Y1,Y2,Y3,

Est ce que vous pourriez m'aider à corriger mon fichier XSL ?

Merci par avance

apple

2 réponses

  1. teebo Messages postés 33585 Date d'inscription   Statut Contributeur Dernière intervention   1 797
     
    Salut,

    <xsl:for-each select="//A">
    <xsl:apply-template />\n
    </xsl:for-each>
    <xsl:template-match ="B/C">
    <xsl:value-of select="."/>,
    </xsl-template>

    Un truc dans le genre, je suis plus très sûr des orthographe des tags et compagnies, et j'ai pas trop le temps d'approfondir, désolé...
    2
  2. apple31 Messages postés 25 Statut Membre 2
     
    merci de ta réponse .

    J'ai trouvé grâce à toi. Voici la bonne syntaxe :

    <xsl:template match="/">Colonne 1, Colonne 2, colonne 3
    <xsl:for-each select="//A">
    <xsl:for-each select="B/C"><xsl:value-of select="." />,</xsl:for-each><xsl:text>
    </xsl:text>
    </xsl:for-each>
    </xsl:template>
    
    


    Apple
    1