XSLT concat函数

时间:2016-05-07 11:18:32

标签: xslt

大家好我有一个场景,根据17个字符的字符串长度动态地在值的右边添加零,如果它少,它会在末尾添加所需的零值,使其长度为17个字符。 $normalizedTime2值是动态的,它可以是任何值,其长度小于17个字符。

我正在尝试以下方法,但它现在按预期工作。

例如:如果我的价值如2016050611525,那么输出应该是20160506115250000。传入的值是动态的。

    <xsl:variable name="normalizedTime2" select="2016050611525"/>
    <xsl:variable name="normalizedTime">
          <xsl:choose>
            <xsl:when test="string-length(normalize-space($normalizedTime2)) &lt; 17">
              <xsl:value-of select="substring(concat(., '00000000000000000'),1,17)"/>
            </xsl:when>
            <xsl:otherwise><xsl:value-of select="$normalizedTime2"/></xsl:otherwise>
          </xsl:choose>   
    </xsl:variable>

让我知道这个问题。

1 个答案:

答案 0 :(得分:1)

我相信你的例子应该有:

<xsl:value-of select="substring(concat($normalizedTime2, '00000000000000000'),1,17)"/>

而不是:

<xsl:value-of select="substring(concat(.,'00000000000000000'),1,17)"/>

我不确定你为什么需要xsl:choose指令 - 除非你期望输入字符串超过17个字符,并且不想将它们删除。否则你可以这样做:

<xsl:value-of select="substring(concat($inputString, '00000000000000000'), 1, 17)"/>

任何输入。