Darius
asked on
xslt 1.0 - Formatting string (Substrings from the End of a String)
Hi guys,
Please assist with this validation.
Have an issue to substring from the End of a String.
Please see below
Thank you
Darius
Please assist with this validation.
Have an issue to substring from the End of a String.
Please see below
<xsl:variable name="originalValue" select="'[some Values]'" />
<xsl:variable name="valueUpdated">
<xsl:call-template name="cut-leading-zeros">
<xsl:with-param name="str" select="normalize-space($originalValue)" />
</xsl:call-template>
</xsl:variable>
<!-- If original values does not have leading zeros
'123'
'12346578912120112455'
'123465789121234567890120222'
. . .
concat orginal value with prefix 'BX'
-->
<xsl:if test="$originalValue">
<xsl:value-of select="concat('BX', $originalValue)"/>
</xsl:if>
<!-- If updated values after removed leading zeros greather then 18
'000012346578912120112455'
'0000123465789121234567890'
'00001234657891212345678901'
. . .
concat updated value with prefix 'BX'
-->
<xsl:if test="string-length($valueUpdated) > 18">
<xsl:value-of select="concat('BX', $valueUpdated)"/>
</xsl:if>
<!-- If original values after removed leading zeros less then 18
'00000000091234567890'
'000000000912345678901'
'0000000009123456789012'
. . .
substring from the End of a String to 18 digits
and concat value with prefix 'BX'
expect values:
'BX000000091234567890'
'BX000000912345678901'
'BX000009123456789012'
-->
<xsl:if test="string-length($valueUpdated) < 18">
<!--max length 20: 'BX' and value-->
. . . to do . . .
</xsl:if>
</xsl:template>
<xsl:template name="cut-leading-zeros">
<xsl:param name="str"/>
<xsl:choose>
<xsl:when test="substring($str, 1, 1) = '0'">
<xsl:call-template name="cut-leading-zeros">
<xsl:with-param name="str" select="substring($str, 2)"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$str"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Thank you
Darius
ASKER CERTIFIED SOLUTION
membership
Create a free account to see this answer
Signing up is free and takes 30 seconds. No credit card required.
welcome
ASKER