<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="H">
<xsl:for-each select="A">
<xsl:value-of select="@M"/>
</xsl:for-each>
<xsl:call-template name="loop">
<xsl:with-param name="i" select="1"/>
<xsl:with-param name="count" select="6"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="loop">
<xsl:param name="i"/>
<xsl:param name="count"/>
<xsl:if test="$i < $count">
<xsl:value-of select="$i"/> (A)
<xsl:call-template name="loop">
<xsl:with-param name="i" select="$i + 1"/>
<xsl:with-param name="count" select="$count"/>
</xsl:call-template>
<xsl:value-of select="$i"/> (B)
</xsl:if>
</xsl:template>
</xsl:stylesheet>
以上代码,如果将输入放在A处,则输出12345
如果放在B处,则输入54321
我分析是否是因为在B处的话,是从堆栈中遵行先进后出的原则。各位有没有其他的解释