1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- ___________________________________________________________ CreateFlatFile ___________________________________________________________-->
<!--Creation Flat File-->
<!-- Permet de sortir une List Of Char passée en entrée -->
<xsl:template match="*">
<xsl:for-each select=".">
<xsl:call-template name="CreateFlatFile">
<xsl:with-param name="Line_list" select="."/>
<xsl:with-param name="delimiter">,</xsl:with-param>
</xsl:call-template>
</xsl:for-each>
</xsl:template>
<!--Definition de la fonction -->
<xsl:template name="CreateFlatFile">
<xsl:param name="Line_list"/>
<xsl:param name="delimiter"/>
<!--On recupere le premier element de la liste -->
<xsl:variable name="firstLine">
<xsl:choose>
<xsl:when test="contains($Line_list, $delimiter)">
<xsl:value-of select="substring-before($Line_list, $delimiter)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="normalize-space(translate(translate($Line_list,'{',''),'}',''))"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="remainingLines" select="substring-after($Line_list, $delimiter)"/>
<!--On creer la sortie au type string -->
<xsl:choose>
<xsl:when test="string-length($firstLine) > 0">
<xsl:value-of select="translate(translate($firstLine,'{',''),'}','')"/>
<xsl:text>
</xsl:text>
</xsl:when>
</xsl:choose>
<!--Test si il reste des element dans la liste. Si oui alors on va relancer la fonction sinon fin de traitement -->
<xsl:choose>
<xsl:when test="string-length($firstLine) = 0">
<!--On ne fait rien: on sort de cette fonction -->
</xsl:when>
<xsl:when test="string-length($remainingLines) != 0">
<xsl:call-template name="CreateFlatFile">
<xsl:with-param name="Line_list" select="$remainingLines"/>
<xsl:with-param name="delimiter">
<xsl:value-of select="$delimiter"/>
</xsl:with-param>
</xsl:call-template>
</xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet> |