| 12
 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> |