Willkommen bei Entwickler-Forum.
Ergebnis 1 bis 4 von 4

Thema: xsl Abfrage

  1. #1
    Neuer Benutzer
    Registriert seit
    23.12.2016
    Beiträge
    3

    Standard xsl Abfrage

    Hallo zusammen.. ich versteh das mit den variablen einfach nicht wirklich. Kann mir jemand einen Denkanstoß geben??

    folgender XML Ausschnitt ist die Basis:
    <Kontodaten>

    <Konto id="1">
    <Kontonummer>123</Kontonummer>
    <Inhaber>
    <Kundennummer>15</Kundennummer>
    </Inhaber>
    <Anfangskapital>100</Anfangskapital>
    </Konto>
    </Kontodaten>

    <Kontobewegungen>

    <Konto id="1">
    <Datum>2000-01-01</Datum>
    <Uhrzeit>13:00:00</Uhrzeit>
    <Wertangaben>-10</Wertangaben>
    <KontonummerEmpfänger>179</KontonummerEmpfänger>
    </Konto>
    <Konto id="1">
    <Datum>2001-02-01</Datum>
    <Uhrzeit>10:35:01</Uhrzeit>
    <Wertangaben>+10</Wertangaben>
    <KontonummerAbsender>156</KontonummerAbsender>
    </Konto>
    <Konto id="1">
    <Datum>2012-03-02</Datum>
    <Uhrzeit>18:22:57</Uhrzeit>
    <Wertangaben>-5</Wertangaben>
    <KontonummerEmpfänger>167</KontonummerEmpfänger>

    </ <Kontobewegungen>

    Ich möchte nun mittels xsl alle Kontobewegungen für das Konto mit der ID=1 ausgeben. Inklusive Berechnungen. Also, Anfangskapital angeben und dann die Wertangaben addieren oder subtrahieren.

    ich bekomm es nur hin mir die Daten anzeigen zu lassen:

    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns="http://www.w3.org/TR/REC-html40">
    <xslutput method="html"/>

    <xsl:template match="EntenhausenerSparkasse">
    <HTML>

    <BODY>
    <TABLE border="1" cellspacing="0" cellpadding="4">
    <xsl:apply-templates select="Kontobewegungen">

    </xsl:apply-templates>
    </TABLE>
    </BODY>
    </HTML>
    </xsl:template>

    <xsl:template match="Kontobewegungen">
    <td> <xsl:text> Kontobewegungen von Kontonummer: 1</xsl:text>
    </td>
    <TR>

    <xsl:for-each select="Konto[@id='1']">
    <tr> <xsl:text>Datum: </xsl:text>
    <xsl:value-of select="Datum" /></tr>
    <td> <xsl:text>Uhrzeit: </xsl:text>
    <xsl:value-of select="Uhrzeit" /></td>
    <td> <xsl:text>Einnahmen: </xsl:text>
    <xsl:value-of select="Wertangaben" /></td>
    <td> <xsl:text>Ausgaben: </xsl:text>
    <xsl:value-of select="Wertangaben" /></td>

    </xsl:for-each>
    </TR>

    <td>

    <xsl:for-each select="Kontobewegungen/Konto[@id='1']">
    <xsl:value-of select="sum(Wertangaben)">


    </xsl:value-of>
    </xsl:for-each>
    </td>

    </xsl:template>

  2. #2
    Stammgast
    Registriert seit
    13.02.2007
    Beiträge
    1.368

    Standard

    Bezogen auf das Template für Kontobewegungen ergeben sich Anfangskapital und Summe so:

    Code XML:
    <xsl:template match="Kontobewegungen">
      <table>
        <!-- ... -->
        <tr>
          <th>Anfangskapital</th>
          <td><xsl:value-of select="//Konto[@id='1']/Anfangskapital"/></td> <!-- 100 -->
          <!-- oder:
          <td><xsl:value-of select="../Kontodaten/Konto[@id='1']/Anfangskapital"/></td>
          -->
        </tr>
        <tr>
          <th>Summe Wertangaben</th>
          <td><xsl:value-of select="sum(Konto[@id='1']/Wertangaben)"/></td> <!-- -5 -->
        </tr>
        <!-- ... -->
      </table>
    </xsl:template>

  3. #3
    Neuer Benutzer
    Registriert seit
    23.12.2016
    Beiträge
    3

    Standard

    Viele Dank für die Antwort! Das mit dem Anfangskapital habe ich auch noch hinbekommen. Die Summe errechnet er aber trotzdem irgendwie nicht. Da kommt als Ergebnis NaN.
    Ich glaube ich brauche aber auch einen grundlegenden Hinweis, wie ich mehrer templates einbinde.. ich krieg es einfach nicht hin. Mein Editor sagt mir jedes mal, dass das nicht zulässig wäre. Muss ich bei meiner Datei grundlegend irgendwas ändern? Kannst du mir da vielleicht einen Tipp geben. Ich verstehe nicht, warum es bei mir nicht funktioniert.

  4. #4
    Stammgast
    Registriert seit
    13.02.2007
    Beiträge
    1.368

    Standard

    Das Plus-Zeichen vor den Zahlenwerten wird nicht von allen XSLT-Prozessoren unterstützt, also weglassen.

 

 

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •