XPath vraag

Status
Niet open voor verdere reacties.

Grandijoost

Nieuwe gebruiker
Lid geworden
28 jan 2008
Berichten
1
Ik moet uit een XML-bestand getallen inlezen die positief of negatief kunnen zijn. Ze zijn echter opgeslagen als tekst en er kunnen ook lege velden zijn.

Voor positieve getallen gebruik ik de functie:
Code:
string(number(concat('0','getal')))
zodat als er niks wordt ingevuld er ook een 0 verschijnt.

Voor negatieve getallen gebruik ik vervolgens:
Code:
string(number(concat('0',translate('getal','-','0'))))
waarna ik het vervolgens met -1 vermeningvuldig.

Maar nu heb ik een databestand waarin zowel positieve als negatieve getallen voorkomen. Hoe krijg ik het nu voor elkaar dat ik meteen het juiste getal krijg, positief of negatief?

Ik heb het idee dat ik veel te moeilijk zit te denken, maar ik denk in de volgende richtingen:
- zet een 0 voor de tekst, en vervang vervolgens "0-" door "-0". Dit werkt echter niet met de translate-functie omdat die elke 0 door een min vervangt en andersom. Is er een alternatieve functie voor translate die wel naar het argument in zijn geheel kijkt ipv de afzonderlijke karakters?
- vervang de min door een nul en kijk of de lengte van de string korter is geworden. Zo ja, negatief getal, zo nee, positief getal. Maar hoe maak ik die if-constructie?

Als iemand zou willen helpen, hartstikke bedankt!
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan