当前位置: 代码迷 >> XML/SOAP >> xslt中遇到了一个有关问题
  详细解决方案

xslt中遇到了一个有关问题

热度:426   发布时间:2012-02-10 21:27:41.0
xslt中遇到了一个问题
<input id="htxtTotalAllowance{position()}" name="TotalAllowance" style="width:80px" ><xsl:attribute name="readonly"></xsl:attribute><xsl:attribute name="value" ><xsl:value-of select="format-number(TotalAllowance,'#,###')" /></xsl:attribute></input>
在这段xslt中目的是将从数据库中读到的数值转化为用逗号三位数分割的方式,也就是将1000 分割为1,000
但是当数据库中值是null时,出现的结果是NaN,有没有能够解决方法 啊,各位大侠,请支招
我看网上用的是<xsl:decimal-format NaN="0" /> 但是我不知道加的位置不对还是写错了,xmlt代码直接不能运行??
小弟分值不多了,还请各位大侠谅解

------解决方案--------------------
你可以
1.但是我不知道加的位置不对还是写错了
re:
http://www.nedcomp.nl/support/origdocs/xml4/extracted/xsl_elm_af_5pbo.aspx?ntp=1

2.可以用xsl:if保证进入格式化的值是数字
------解决方案--------------------
我写了一个你看看:
xml文件
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="number.xsl"?>
<text>
<t>213123456</t>
<t>456456789</t>
<t>2457421544</t>
</text>


xsl文件:

<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" method="html"></xsl:output>
<xsl:decimal-format name="euro" decimal-separator="." grouping-separator=","/>
<xsl:template match="/">
<html>
<body>
<xsl:for-each select="text/t">

<xsl:value-of select="format-number(./text(), '#,###.00', 'euro')"/><br></br>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>