XSLT 1.0 字符串右侧的子字符串

  • 本文关键字:字符串 XSLT xslt-1.0
  • 更新时间 :
  • 英文 :


我在元素中有一个值作为433554567643。我想将其更改为 43 35545 67643。分组应从值的右侧开始。是否可以使用从值的末尾到开头的减法?

谢谢。

您可以使用递归模板执行此操作。

<xsl:template name="add-spaces">
  <xsl:param name="group" select="5" />
  <xsl:param name="text" />
  <xsl:if test="string-length($text) &gt; $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>

如果您的值始终是一个数字,则可以将 format-number() 与按 5 位数字分组的模式一起使用,然后将","translate()成" ":

<xsl:value-of select="translate(format-number('433554567643', '#,#####'), 
                                ',', ' ')" />

相关内容

  • 没有找到相关文章

最新更新