Вы, кажется, использует процессор XSLT 2.0 (все 5-6 различных XSLT 1.0 процессоров, которые я использую производить разыскиваемый ответ - 1001111
С процессором XSLT 2.0, просто конвертировать @ProductID
в xs:decimal
.:
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/*">
<xsl:value-of select="xs:decimal(@ProductID) + 1000000"/>
</xsl:template>
</xsl:stylesheet>
Когда это преобразование применяется на следующий документ XML:
<t ProductID="1111"/>
разыскиваемый, правильный результат получается:
1001111
Обратите внимание:
с помощью xs:decimal(someNumber)
конструктор и десятичной арифметики гарантирует максимальную точность результата, в случае someNumber
может иметь нецелое значение.
Тип xs:decimal
является базовым типом для xs:integer
, то есть любой xs:integer
также xs:decimal
, так что это решение работает и для любых целочисленных значений.
проверка на использование функции формата. У вас могут быть некоторые подсказки здесь: http://stackoverflow.com/questions/3758978/xslt-format-number-with-comma – BiAiB