XSLT 1.0 convert, translate, remove
juls_pro_37
- xml
- xsl
1 ThomasM
Hallo,
wie kann ich den Wert "AllowanceOrCharge_Header.VatPercentage" von 5,5.00 in 5.50 umwandeln?
Hätte gern eine Bedingung: Wenn "AllowanceOrCharge_Header.VatPercentage" ein "," und ".00" beinhaltet, dann soll das "," in "." umgewandelt werden und ".0" entfernt werden. Oder denke ich zu kompliziert?
XML:
<AllowanceOrCharge_Header>
<Qualifier>C</Qualifier>
<Code>FC</Code>
<Text>FRET</Text>
<Amount>45.0000</Amount>
<VatPercentage>5,5.00</VatPercentage>
</AllowanceOrCharge_Header>
XSLT:
<xsl:template match="VatPercentage[contains(., ',')]">
<VatPercentage><xsl:value-of select="translate(., ',', '.')"/></VatPercentage>
</xsl:template>
Korrekt: XML:
<AllowanceOrCharge_Header>
<Qualifier>C</Qualifier>
<Code>FC</Code>
<Text>FRET</Text>
<Amount>45.0000</Amount>
<VatPercentage>5.50</VatPercentage>
</AllowanceOrCharge_Header>
Hallo Julian,
wie kann ich den Wert "AllowanceOrCharge_Header.VatPercentage" von 5,5.00 in 5.50 umwandeln?
Hätte gern eine Bedingung: Wenn "AllowanceOrCharge_Header.VatPercentage" ein "," und ".00" beinhaltet, dann soll das "," in "." umgewandelt werden und ".0" entfernt werden. Oder denke ich zu kompliziert? ... XSLT:
<xsl:template match="VatPercentage[contains(., ',')]"> <VatPercentage><xsl:value-of select="translate(., ',', '.')"/></VatPercentage> </xsl:template>
Probiere es so:
<xsl:template match="VatPercentage[contains(., ',') and contains(., '.00')]">
<VatPercentage>
<xsl:value-of select="format-number(translate(translate(., '.', ''), ',', '.'), '#.00')"/>
</VatPercentage>
</xsl:template>
Grüße,
Thomas
DANKE Thomas, genau das war es!!! vielen vielen dank!