我正在尝试显示正确的负值格式:
现在显示(19%),当我想将其显示为-19%时。
我有一个带
的XML文件 <PerChg>-0.190</PerChg>
在XSL中格式化它不起作用:
<xsl:value-of select="format-number(PerChg, '#0%')"/>
<xsl:value-of select="format-number(PerChg, '#0%;-#0%')"/>
甚至尝试过:
<xsl:decimal-format name="decimalChangePercent" minus-sign="-" />
<xsl:value-of select="format-number(PerChg, '#0%;-#0%', 'decimalChangePercent')"/>
有什么想法吗?在.NET世界中,使用XslCompiledTransform / XSLT 1.0。
谢谢!
答案 0 :(得分:3)
没有看到问题...
此输入XML文件
<PerChg>-0.190</PerChg>
提供给此XSLT,
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:value-of select="format-number(PerChg, '#0%')"/>
</xsl:template>
</xsl:stylesheet>
产生此输出,
-19%
正如所料。
答案 1 :(得分:1)
有一个JavaScript函数可以将所有负值转换为括号。
function MakeNegative() {
TDs = document.getElementsByTagName('td');
for (var i = 0; i < TDs.length; i++) {
var temp = TDs[i];
if (temp.firstChild && temp.firstChild.nodeValue) { // if not null
if (temp.firstChild.nodeValue.indexOf('-') == 0) {
temp.className += " negative";
temp.firstChild.nodeValue = '(' + temp.firstChild.nodeValue.replace('-', '') + ')';
}
}
}
};
感谢你的确认@kjhughes让我看起来更难!