Dixi86: Xpath Funktion erzeugt Fehlermeldung

Hallo,

Ich habe folgendes Problem. Ich habe in XML einen String der ein Leerzeichen enthält.

<root>  
           <string integer="595.275590551181 841.889763779528"/>  
<root>

Nun will ich die beiden Zahlen trennen und umrechnen lassen mit

<xsl:template match="/">  
<xsl:value-of select="string/round (substring-before (//@integer, '&#x20;') div 2.8346512493134829)"/>  
</xsl:template>

Allerdings gibt mir saxon-B 9.0.0.6 die Fehlermeldung aus:
"Arithmetic operator is not defined for arguments of types (xs:string, xs:decimal)" Ich muss gestehen, dass ich damit nichts anfangen kann...

Kann mir jemand auf die Sprünge helfen?! Muss ich noch einen Namesspace einfügen ?!

Vielen Dank
Dixi86

  1. Hallo,

    Ich habe folgendes Problem. Ich habe in XML einen String der ein Leerzeichen enthält.

    <root>

    <string integer="595.275590551181 841.889763779528"/>
    <root>

    
    >   
    > Nun will ich die beiden Zahlen trennen und umrechnen lassen mit  
    >   
    > ~~~xml
    
    <xsl:template match="/">  
    
    > <xsl:value-of select="string/round (substring-before (//@integer, '&#x20;') div 2.8346512493134829)"/>  
    > </xsl:template>
    
    

    Allerdings gibt mir saxon-B 9.0.0.6 die Fehlermeldung aus:
    "Arithmetic operator is not defined for arguments of types (xs:string, xs:decimal)" Ich muss gestehen, dass ich damit nichts anfangen kann...

    "substring-before" erzeugt einen String, den willst du dann dividieren. Da meckert der Prozessor.

    round(number(substring-before(@integer, ' ')) div 2.8346512493134829)

    Grüße
    Thomas

    1. Super! Vielen Dank für die schnelle Antwort! Es hat funktioniert!

      Simon