<Data>
<AA>123</AA>
<AA>45658</AA>
<AA>123456789</AA>
</Data>
必要な出力:
<info>
<Numbers id="000000123" />
<Numbers id="000045658" />
<Numbers id="123456789" />
</info>
調子:
要素 AA の値の文字列の長さを確認する必要があります。長さが 9 未満の場合は、長さを 9 桁にするために「0」を追加する必要があります。
XSLT は書きました:
<xsl:template match="Data">
<info>
<xsl:for-each select="AA">
<Numbers>
<xsl:attribute name="id">
<xsl:variable name="numlenght">
<xsl:value-of select="string-length(.)" />
</xsl:variable>
<xsl:choose>
<xsl:when test="$numlenght<9">
<xsl:variable name="balance">
<xsl:value-of select="9-$numlenght"/>
</xsl:variable>
<xsl:for-each select="//*[position() <$balance]">
<xsl:value-of select="'0'"/>
</xsl:for-each>
</xsl:when>
</xsl:choose>
<xsl:value-of select="."/>
</xsl:attribute>
</Numbers>
</xsl:for-each>
</info>
</xsl:template>
正確な出力が得られません。
誰でもそれを行う方法を提案できますか?