0

有什么方法可以在输出中创建想要的空间,因为我一直在热编码,如果我需要空间<xsl:text>&#10;</xsl:text >,请建议一个函数根据传递的参数生成空间,请建议

4

1 回答 1

0

您可能正在查看递归模板。像这样的东西:

<xsl:template name="WriteSpaces">
   <xsl:param name="count" />
   <xsl:if test="$count &gt; 0">
     <xsl:text> </xsl:text>
     <xsl:call-template name="WriteSpaces">
       <xsl:with-param name="count" select="$count - 1" />
     </xsl:call-template>
   </xsl:if>
</xsl:template>

请注意,调用它实际上会污染您的代码,甚至不仅仅是直接放置空格。对于静态内容,我可能只使用文本。对于动态内容(即,如果您愿意<xsl:text> </xsl:text><xsl:value-of select="." /><xsl:text> </xsl:text>),我会使用 concat() 函数,因为它不限制参数的数量 - 因此您可以将上面的代码编写为<xsl:value-of select="concat(' ', ., ' ')" />.

于 2012-10-08T17:32:18.483 回答