我想使用XSLt V 1.0對一些值進行求和,但將它們視爲字符串。以下是xml的示例,以及我的示例xslt。我應該改變底層SQL視圖中的數據類型嗎?我嘗試了各種數字數據類型,但我需要保留小數或金錢格式,因爲這應該是總計美元。有沒有在XSLT中使用可能的變量的方法,這將允許我將該字符串轉換爲數字?我試圖使用數字()轉換,但我仍然得到NaN。不要太瞭解xslt,並且非常感謝任何幫助,或者如果你能指點我的相關資源。將字符串轉換爲數字進行求和並避免使用NaN
<?xml version="1.0" encoding="utf-8"?>
<xml>
<object>
<objectid>183382</objectid>
<objectnumber>Test000</objectnumber>
<lccs>
<lcc>
<groupname>Costs: Acquisition planning</groupname>
<userfieldgroupid>9</userfieldgroupid>
<userfieldname>Concept development hours</userfieldname>
<userfieldid>42</userfieldid>
<fieldvalue>1</fieldvalue>
<depreciationlife>25</depreciationlife>
<costs>46</costs>
</lcc>
<lcc>
<groupname>Costs: Acquisition planning</groupname>
<userfieldgroupid>9</userfieldgroupid>
<userfieldname>Concept assessment hours</userfieldname>
<userfieldid>43</userfieldid>
<fieldvalue>.25</fieldvalue>
<depreciationlife>25</depreciationlife>
<costs>11.5</costs>
</lcc>
</lccs>
</object>
</xml>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:js="urn:custom-javascriptscript" exclude-result-prefixes="msxsl js">
<xsl:output method="html" omit-xml-declaration="yes" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" doctype-system="http://www.w3.org/TR/html4/loose.dtd" indent="yes"/>
<xsl:template match="/xml/object">
<html>
<head>
</head>
<body>
<table>
<tr style="font-weight:bold" >
<td>Item</td>
<td>$</td>
</tr>
<xsl:for-each select="lccs/lcc">
<xsl:choose>
<xsl:when test="normalize-space(userfieldid)='42'">
<tr>
<td>
<xsl:value-of select="normalize-space(fieldvalue)"/>
</td>
<td>
<xsl:value-of select="normalize-space(number(costs))"/>
</td>
</tr>
</xsl:when>
<xsl:when test="normalize-space(userfieldid)='43'">
<tr>
<td>
<xsl:value-of select="normalize-space(fieldvalue)"/>
</td>
<td>
<xsl:value-of select="normalize-space(number(costs))"/>
</td>
</tr>
<tr>
<td>Subtotal</td>
<td><xsl:value-of select="sum(//costs)"/></td>
</tr>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
無論你遇到的問題:如果是貨幣,[浮點算術不是無論如何去](http://stackoverflow.com/questions/14741009/perl-for-loop-going-失控/ 14741188#14741188)。 –
請發佈允許我們重現問題的代碼。將樣式表應用於輸入不會**在任何地方產生NaN結果。 –
作爲旁註,您的小計都計算相同的值,至少有一個「//費用」應該是相對路徑。 –