У меня есть элемент xml <RandomNumber>
, размер строки которого всегда равен 8 или 9 цифрам. Если длина строки элемента больше 1, я бы хотел дополнить его нулями, если его размер равен 8, а не 9 цифрам. Поэтому я написал следующий код:
<?xml version = '1.0' encoding = 'UTF-8'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml"/>
<xsl:variable name="STRING_LENGTH">
<xsl:text>1</xsl:text>
</xsl:variable>
<xsl:for-each select="current()[string-length(RandomNumber) >= $STRING_LENGTH]/RandomNumber">
<xsl:element name="leftPNumber">
<xsl:value-of select="format-number(current(), '000000000')"/>
</xsl:element>
</xsl:for-each>
</xsl:stylesheet>
Для ввода:
<RandomNumbers>
<RandomNumber>11223366</RandomNumber>
</RandomNumbers>
Предполагаемый вывод должен быть:
<leftPNumber>011223366</leftPNumber>
По какой-то причине это не работаеткак и предполагалось, но тоже не виноват. Он просто создает новый элемент с оригинальным номером, без добавления дополнительного «0». Это потому, что я использую current () внутри "format-number"? Если да, то какую альтернативу я могу использовать?
Приветствия,
Jesper