XML->XSL->CSV

Résolu
apple31 Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -  
apple31 Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

2 réponses

teebo Messages postés 33491 Date d'inscription   Statut Modérateur Dernière intervention   1 793
 
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
apple31 Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   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