2016-11-09 3 views
1

Ich versuche, das richtige negativen Wert Format angezeigt zu bekommen:Formatierung negative Werte in XSLT

Gerade jetzt ist es (19%) zeigt, wenn ich es als -19% zeigen möge.

<xsl:value-of select="format-number(PerChg, '#0%')"/> 
<xsl:value-of select="format-number(PerChg, '#0%;-#0%')"/> 

sogar versucht:

<xsl:decimal-format name="decimalChangePercent" minus-sign="-" /> 
<xsl:value-of select="format-number(PerChg, '#0%;-#0%', 'decimalChangePercent')"/> 

Irgendwelche Ideen nicht Formatierung nicht funktionieren

Ich habe mit

<PerChg>-0.190</PerChg>

es in XSL eine XML-Datei erhalten? Bin in der .NET-Welt mit XslCompiledTransform/XSLT 1.0.

Danke!

Antwort

3

das Problem nicht sehen ...

Dieser Eingang XML-Datei,

<PerChg>-0.190</PerChg> 

dieser XSLT zur Verfügung gestellt,

<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> 

liefert diese Ausgabe,

-19% 

wie erwartet.

1

Bingo, fand den Schuldigen!

Es gibt eine JavaScript-Funktion, die alle negativen Werte in Klammern umwandelt.

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('-', '') + ')'; 
         } 
        } 
       } 
      }; 

Vielen Dank für Ihre Bestätigung @kjhughes mir härter aussehen!