У меня есть xml значение, подобное этому, в качестве входного файла:
<digit1>1234</digit>
<digit2>5678</digit2>
Я хочу, чтобы цифры были отформатированы и обработаны следующим образом:
<digit1>1234 </digit>
<digit2> 5678</digit2>
Как добавить пробелы для каждого значения поля? Digit1 и Digit2 имеют фиксированную длину, равную 8. Если значение равно только 4, добавьте к нему пробелы. Цифра 1 соответствует левому значению, а цифра 2 - по правому краю.
У меня есть что-то подобное, но не работает
<xsl:variable name="RightPadding" select="' '"/>
<xsl:variable name="LeftPadding" select="' '"/>
<!-- Function to left-pad (right justify) -->
<xsl:function name="PadLeft">
<xsl:param name="string"/>
<xsl:param name="length"/>
<xsl:variable name="leftPad">
<xsl:value-of select="substring($LeftPadding,1,$length - string-length(string($string)))"/>
</xsl:variable>
<xsl:value-of select="concat($leftPad, $string)"/>
</xsl:function>
<!-- Function to right-pad (left justify) -->
<xsl:function name="PadRight">
<xsl:param name="string"/>
<xsl:param name="length"/>
<xsl:value-of select="substring(concat($string,$RightPadding),1,$length)"/>
</xsl:function>
<xsl:value-of select="PadRight(digit1,8)"/></Invoice_No>
<xsl:value-of select="PadLeft(digit2,8)"/></Gross_Amount>
большое спасибо