<xsl:template name="nLoopExcept">
<!-- $aExcept !elt_1!elt_2! -->
<xsl:param name="aExcept"/>
<xsl:param name="aSep"/>
<xsl:comment>
<xsl:value-of select="concat('nLoopExcept(aSep:', $aSep, ', aExcept:', $aExcept, ')')"/>
</xsl:comment>
<xsl:variable name="vSelectedElt">
<xsl:for-each select="*">
<xsl:if test="not(contains($aExcept, concat('!', local-name(), '!')))">
<xsl:copy-of select="."/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:if test="contains($pDebug, '_loop_')">
<dbg-sep>
<xsl:copy-of select="$aSep"/>
</dbg-sep>
<dbg except="{$aExcept}">
<xsl:copy-of select="$vSelectedElt"/>
</dbg>
</xsl:if>
<xsl:choose>
<xsl:when test="'!none' = $aSep">
<xsl:for-each select="*">
<xsl:if test="not(contains($aExcept, concat('!', local-name(), '!')))">
<xsl:apply-templates select="."/>
</xsl:if>
</xsl:for-each>
</xsl:when>
<xsl:when test="'!br' = $aSep">
<xsl:for-each select="*">
<xsl:if test="not(contains($aExcept, concat('!', local-name(), '!')))">
<div class="br" ce="nLoopExcept/for">
<xsl:apply-templates select="."/>
</div>
</xsl:if>
</xsl:for-each>
</xsl:when>
<xsl:when test="function-available('exslt:node-set')">
<xsl:for-each select="exslt:node-set($vSelectedElt)/*">
<xsl:apply-templates select="."/>
<xsl:choose>
<xsl:when test="position() < last()">
<xsl:copy-of select="$aSep"/>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<!-- IE, edge TODO -->
<xsl:for-each select="*">
<xsl:if test="not(contains($aExcept, concat('!', local-name(), '!')))">
<xsl:apply-templates/>
<xsl:if test="position() < last()">
<xsl:copy-of select="$aSep"/>
</xsl:if>
</xsl:if>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</xsl:template> |