Sortering hvor num.værdi indehol decimaler og tusind-adskiller
Hej
Jeg har et lille problem med sortering af mine XML-data i XSL. Mine numeriske værdier i XML´en er faktisk ikke rigtig numeriske, da de allerede er formateret med komma før decimaler samt punktum som tusind-adskiller.
Når jeg med xsl:sort forsøger at sortere dataene bliver det forkert uanset om jeg bruger data-typen number eller text.
Hvordan løser jeg det problem? Jeg har lavet en xsl:decimal-format, kan man evt. sige, at den skal læse værdien som number og tage hensyn til opsættet i xsl:decimal-format?
Men hvordan skal jeg gøre det, når det er i min xsl:sort?
I min kode er det VALUE, som f.eks. indeholder 365.464,50 <xsl:sort select="STATIC/FIELDS/COLDTA/FIELD[NAME=$XLSORTFIELD]/VALUE" order="{$XLSORTORDER}" data-type="number" />
Tak for det - det ledte mig på sporet. Jeg ændrede lidt, så jeg først erstatter tusind-seperator med ingenting (fra '.' til '') og dernæst erstatter komma med punktum (',' '.'). Så virker det.
Men der er dukket et problem mere op. Ved number skal et fortegn tilsyneladende står før tallet (f.eks. -15,20), men værdierne jeg får i XML´en er f.eks. 15,20- Hvordan løser jeg det problem, så den sorterer rigtigt.
Mvh Tom
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.