我在元素中有一个值为433554567643。 我想将其更改为43 35545 67643.分组应从值的右侧开始。 是否可以使用从结尾开始的子字符串?
感谢。
答案 0 :(得分:3)
您可以使用递归模板执行此操作。
<xsl:template name="add-spaces">
<xsl:param name="group" select="5" />
<xsl:param name="text" />
<xsl:if test="string-length($text) > $group">
<xsl:call-template name="add-spaces">
<xsl:with-param name="group" select="$group" />
<xsl:with-param name="text"
select="substring($text, 1, string-length($text) - $group)" />
</xsl:call-template>
<xsl:text> </xsl:text>
</xsl:if>
<xsl:value-of select="substring($text, string-length($text) - $group + 1)" />
</xsl:template>
您可以在需要时使用
调用此方法<xsl:call-template name="add-spaces">
<xsl:with-param name="text" select="'433554567643'" />
<!-- or select="path/to/element" as appropriate -->
</xsl:call-template>
答案 1 :(得分:0)
如果您的值始终是一个数字,则可以使用format-number()
模式将数字分组5位数,然后translate()
将“,”变为“”:
<xsl:value-of select="translate(format-number('433554567643', '#,#####'),
',', ' ')" />