XML: Summieren von errechneten Werten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • XML: Summieren von errechneten Werten

    Hallo,

    irgendwie häng ich da an einem kleinen Problem:

    XML-Daten:
    #############################

    Quellcode

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <?xml-stylesheet href="kundenumsatz.xsl" type="text/xsl"?>
    3. <kundenumsatz>
    4. <kunde>
    5. <kundencode>QUICK</kundencode>
    6. <firma>QUICK-Stop</firma>
    7. <plz>01307</plz>
    8. <land>Deutschland</land>
    9. <bestellnr>10285</bestellnr>
    10. <artikel>Chai</artikel>
    11. <preis>14.4</preis>
    12. <menge>45</menge>
    13. <rabatt>0.2</rabatt>
    14. </kunde>
    15. <kunde>
    16. <kundencode>RATTC</kundencode>
    17. <firma>Rattlesnake Canyon Grocery</firma>
    18. <plz>87110</plz>
    19. <land>USA</land>
    20. <bestellnr>10294</bestellnr>
    21. <artikel>Chai</artikel>
    22. <preis>14.4</preis>
    23. <menge>18</menge>
    24. <rabatt>0</rabatt>
    25. </kunde>
    26. <kunde>
    27. <kundencode>LONEP</kundencode>
    28. <firma>Lonesome Pine Restaurant</firma>
    29. <plz>97219</plz>
    30. <land>USA</land>
    31. <bestellnr>10317</bestellnr>
    32. <artikel>Chai</artikel>
    33. <preis>14.4</preis>
    34. <menge>20</menge>
    35. <rabatt>0</rabatt>
    36. </kunde>
    Alles anzeigen

    #############################


    Wenn ich nun mittels XSL pro Kunde den Lagerwert (preis*menge*(1-rabatt)) errechne, wie kann ich dann diesen errechneten Wert summieren?

    Mein Ansatz war:
    #############################

    Quellcode

    1. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    2. <!-- -->
    3. <xsl:template match="/">
    4. <h1>Kundenumsatz</h1>
    5. <xsl:apply-templates select="/kundenumsatz"/>
    6. </xsl:template>
    7. <!-- -->
    8. <xsl:template match="kundenumsatz">
    9. <xsl:value-of select="sum(/kundenumsatz/kunde/preis*/kundenumsatz/kunde/menge*(1-/kundenumsatz/kunde/rabatt))"/>
    10. </xsl:template>
    11. <!-- -->
    12. <xsl:template match="node()|@*">
    13. <xsl:apply-templates/>
    14. </xsl:template>
    15. <!-- -->
    16. </xsl:stylesheet>
    Alles anzeigen

    #############################

    Allerdings motzt der Parser schon bei der Berechnung da die XPath-Ausdrücke anscheinen keine Nodes zurück geben.

    Wo liegt mein Denkfehler? Oder muss ich es einfach komplett anders angehn?

    MfG
    Angelripper