2016-05-07 6 views
1

Hallo alles, ich hatte ein Szenario, um Null in der rechten Wert dynamisch auf String-Länge für 17 Zeichen hinzuzufügen, und wenn es weniger es wird die erforderliche keine von Null am Ende hinzufügen, um es 17 Zeichen lang . $normalizedTime2 Wert ist dynamisch ein beliebiger Wert es kann kommen, die weniger als 17 Zeichen lang ist.XSLT concat Funktion

Ich versuche diesen Ansatz, aber es funktioniert jetzt wie erwartet.

Bsp: Wenn ich Wert wie 2016050611525 bekomme, sollte der output 20160506115250000 sein. Der eingehende Wert ist dynamisch.

<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> 

Lassen Sie mich das Problem wissen.

+0

http://stackoverflow.com/help/someone-answers –

+0

Wird Ihre Frage nicht beantwortet? –

Antwort

1

Ich glaube, dass Ihr Beispiel sollte:

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

statt:

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

Und ich bin mir nicht sicher, warum Sie benötigen die xsl:choose Anweisung - es sei denn, Sie Eingabezeichenfolgen länger als 17 Zeichen erwarten und will sie nicht abschneiden. Sonst könnten Sie einfach tun:

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

für jeden Eingang.