lernen2007: Anstatt Komma ein Punkt

Hallo,

mein XML File sieht folgendermaßen aus:
<?xml version="1.0" encoding="UTF-8"?>
<test projectname="client"> <testsuite name="tests">
<testcase name="Test1" time="35,905"/>
<testcase name="Test2" time="30,325"/>
<testcase name="LinksTest" time="39,458"/>
<testcase name="ObereTest" time="33,15"/>
</testsuite>

Ich will die Zahlen in time anstatt so "35,905" in "35.905" haben, d.h. anstatt ein Komma ein Punkt.

Mein Xslt sieht folgendermaßen aus: <xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:template match="/"> xsl:apply-templates/
</xsl:template> <xsl:template match="test">
<xsl:element name="test"> <xsl:attribute name="projectname">
<xsl:value-of select="@projectname"/>
</xsl:attribute> xsl:apply-templates/ </xsl:element> </xsl:template> <xsl:template match="testsuite"> <xsl:element name="testsuite"> <xsl:attribute name="name"> <xsl:value-of select="@name"/> </xsl:attribute> xsl:apply-templates/ </xsl:element> </xsl:template>
<xsl:template match="testcase"> <xsl:element name="testcase"> <xsl:attribute name="name"> <xsl:value-of select="@name"/> </xsl:attribute> <xsl:attribute name="time"> <xsl:value-of select="@time"/> </xsl:attribute> <xsl:if test="text()"> <xsl:element name="error"> <xsl:value-of select="."/> </xsl:element> </xsl:if> </xsl:element> </xsl:template> </xsl:stylesheet>

Hat vielleicht jemand von euch ein Tipp für mich?

  1. Hallo lernen2007,

    Ich will die Zahlen in time anstatt so "35,905" in "35.905" haben, d.h. anstatt ein Komma ein Punkt.

    Das lässt sich mittels translate()-Funktion realisieren:
    <xsl:value-of select="translate(@time,',','.')"/>

    Mein Xslt sieht folgendermaßen aus: <xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
    <xsl:template match="/"> xsl:apply-templates/
    ...

    Hier ist einiges kaputt, also wohlgeformt ist das jedenfalls nicht. Versuche auch, xsl:element und xsl:attribute nur bei dynamischen Namen/Inhalten zu verwenden.

    Statt

    <xsl:element name="bla">  
      <xsl:attribute name="blub">  
        <xsl:value-of select="..."/>  
      </xsl:attribute>  
      <!-- Elementinhalt -->  
    </xsl:element>
    

    ist

    <bla blub="{...}">  
      <!-- Elementinhalt -->  
    </bla>
    

    wesentlich besser les- und wartbar und auch weniger fehleranfällig.

    Grüße,
    Thomas

    1. Hallo,

      vielen dank. Es funktioniert.

      :):)