问题在于指定的输入,我有一个类似这样的输入,-0.982983928391353,我想将其格式化为 -0.98298(最多 5 个小数点)这是下面的示例输入 xml。
<rs>
<R>
<C0>vo</C0>
<C1>f_item</C1>
<C2>1</C2>
<C3>4</C3>
<C4>Stores</C4>
<C5>2011-10-13T00:00:00</C5>
<C6>Active</C6>
<C7>Supplier</C7>
</R>
<R>
<C0>SManufacturing</C0>
<C1>KB18759</C1>
<C2>-0.1002345678907564</C2>
<C3>2</C3>
<C4>Stores</C4>
<C5>1999-02-03T00:00:00</C5>
<C6>Active</C6>
<C7>Supplier</C7>
</R>
</rs>
所需的输出是
<rs>
<R>
<C0>vo</C0>
<C1>f_item</C1>
<C2>1.00000</C2>
<C3>4.00000</C3>
<C4>Stores</C4>
<C5>2011-10-13T00:00:00</C5>
<C6>Active</C6>
<C7>Supplier</C7>
</R>
<R>
<C0>SManufacturing</C0>
<C1>KB18759</C1>
<C2>-0.10023</C2>
<C3>2.00000</C3>
<C4>Stores</C4>
<C5>1999-02-03T00:00:00</C5>
<C6>Active</C6>
<C7>Supplier</C7>
</R>
</rs>
我试过这个,但这仅适用于正整数。它不格式化 -0.1002345678907564..
<xsl:template match="node()">
<xsl:copy>
<xsl:apply-templates select="@*| node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match = "*[not(*)][translate(.,'0123456789.*****', '') = '']">
<xsl:copy>
<xsl:value-of select="format-number(number(.), '0.00000')"/>
</xsl:copy>