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 59
|
<xsl:template match="Conditions">
<Conditions>
<xsl:call-template name="loop">
<xsl:with-param name="position">1</xsl:with-param>
<xsl:with-param name="tokens" select="tokenize(.,'\n')[.!='']"/>
</xsl:call-template>
</Conditions>
</xsl:template>
<xsl:template name="loop">
<xsl:param name="position"/>
<xsl:param name="tokens"/>
<xsl:for-each select="subsequence($tokens,number($position),1)">
<xsl:choose>
<xsl:when test="starts-with(normalize-space(.),'//')">
<xsl:call-template name="loop">
<xsl:with-param name="position" select="string(number($position) + 1)"/>
<xsl:with-param name="tokens" select="$tokens"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="starts-with(normalize-space(.),'/*')">
<xsl:call-template name="loop2">
<xsl:with-param name="position" select="string(number($position) + 1)"/>
<xsl:with-param name="tokens" select="$tokens"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="."/>
<xsl:text> 
 </xsl:text>
<xsl:call-template name="loop">
<xsl:with-param name="position" select="string(number($position) + 1)"/>
<xsl:with-param name="tokens" select="$tokens"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template>
<xsl:template name="loop2">
<xsl:param name="position"/>
<xsl:param name="tokens"/>
<xsl:for-each select="subsequence($tokens,number($position),1)">
<xsl:choose>
<xsl:when test="ends-with(normalize-space(.),'*/')">
<xsl:call-template name="loop">
<xsl:with-param name="position" select="string(number($position) + 1)"/>
<xsl:with-param name="tokens" select="$tokens"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="loop2">
<xsl:with-param name="position" select="string(number($position) + 1)"/>
<xsl:with-param name="tokens" select="$tokens"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template> |
Partager