XSLT: Werte addieren

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

  • XSLT: Werte addieren

    Hallo @all,

    ich bräute Hilfe bei der Verarbeitung von xml/xsl.
    Ich habe 5Personen, die eventuell schon früher Geld verdient haben. Falls dies zutrifft, möchte ich das Geld addieren. Allerdings bräuchte ich da ungefähr soetwas:
    Verdienst = bisheriger Verdienst + alter Verdienst (+alterVerdienst.....). Diesen dann xmal rekursiv aufrufen....
    Dabei hab ich sehr große Probleme.
    1. Gibt es einen weiteren Knoten?
    2. Wie stelle ich das mit Variablen dar? Es gibt doch nur starre Variablen.

    Vielen Dank für eure Hilfe!
    Matze
  • Wie sieht denn die XML aus?
    Hab mal ein Beispiel dazu erstellt
    In diesem Fall bräuchtest du keine Variablen - da es ja die SUM() Funktion gibt

    XML

    Quellcode

    1. <?xml version="1.0" encoding="ISO-8859-1"?>
    2. <test>
    3. <person id="person1">
    4. <gehalt>10</gehalt>
    5. <altes_gehalt>20</altes_gehalt>
    6. <neues_gehalt>30</neues_gehalt>
    7. </person>
    8. <person id="person2">
    9. <gehalt>15</gehalt>
    10. <altes_gehalt>25</altes_gehalt>
    11. <neues_gehalt>35</neues_gehalt>
    12. </person>
    13. <person id="person3">
    14. <gehalt>11</gehalt>
    15. <altes_gehalt>21</altes_gehalt>
    16. <neues_gehalt>31</neues_gehalt>
    17. </person>
    18. </test>
    Alles anzeigen


    XSLT

    Quellcode

    1. <?xml version="1.0" encoding="iso-8859-1"?>
    2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    3. <xsl:template match="/">
    4. <html>
    5. <head>
    6. </head>
    7. <body>
    8. <table border="1">
    9. <xsl:apply-templates />
    10. </table>
    11. </body>
    12. </html>
    13. </xsl:template>
    14. <xsl:template match="person">
    15. <tr><td><b><xsl:value-of select="@id" /></b></td><td><font color="#afafaf">
    16. <xsl:for-each select="*">
    17. Addiere: <xsl:value-of select="." /><br />
    18. </xsl:for-each></font>
    19. Summe: <xsl:value-of select='sum(*)'/>
    20. </td></tr>
    21. </xsl:template>
    22. </xsl:stylesheet>
    Alles anzeigen
    Bilder
    • xml-xslt-person-gehalt.png

      12,22 kB, 210×261, 1.125 mal angesehen