Summe in XSL
XSL Laie
- xsl
0 MudGuard0 XSL Laie0 Thomas J.S.0 MudGuard
Hallo,
Ich möchte die Summe von anz nur für bearbeiter="frau" machen.
<K bearbeiter="mann" datum="20.10.2003" param="1" anz="1"/>
<K bearbeiter="frau" datum="20.10.2003" param="2" anz="2"/>
<K bearbeiter="frau" datum="20.10.2003" param="1" anz="2"/>
<K bearbeiter="frau" datum="20.10.2003" param="1" anz="3"/>
Kann jemand mir helfen?
Danke
XSL Laie
Hi,
Hallo,
Ich möchte die Summe von anz nur für bearbeiter="frau" machen.
<K bearbeiter="mann" datum="20.10.2003" param="1" anz="1"/>
<K bearbeiter="frau" datum="20.10.2003" param="2" anz="2"/>
<K bearbeiter="frau" datum="20.10.2003" param="1" anz="2"/>
<K bearbeiter="frau" datum="20.10.2003" param="1" anz="3"/>
Dazu brauchst Du die sum(node-set) XPath-Funktion.
Und ein geeignetes Nodeset.
Da Du die anz-Attribute von K-Elementen summieren willst:
K/@anz
das erwischt aber alle K-Elemente, also weiter einschränken auf diejenigen @anz-Attribute in K-Elementen, deren Papa (also das K-Element) ein Attribut bearbeiter mit Wert Frau, also ../@bearbeiter='frau' haben.
K/@anz[../@bearbeiter='frau']
Ausgabe der Summe per xsl:value-of:
<xsl:value-of select="sum(K/@anz[../@bearbeiter='frau'])"/>
(evtl. noch den Pfad zum K-Element vor K davorhängen, hängt davon ab, wie das XML aufgebaut ist und in welchem Kontext das entsprechende Template aufgerufen wird).
(Warnung: obiger Code ist nicht getestet, also keine Funktionsgarantie)
cu,
Andreas
Hi,
Hallo,
Ich möchte die Summe von anz nur für bearbeiter="frau" machen.
<K bearbeiter="mann" datum="20.10.2003" param="1" anz="1"/>
<K bearbeiter="frau" datum="20.10.2003" param="2" anz="2"/>
<K bearbeiter="frau" datum="20.10.2003" param="1" anz="2"/>
<K bearbeiter="frau" datum="20.10.2003" param="1" anz="3"/>Dazu brauchst Du die sum(node-set) XPath-Funktion.
Und ein geeignetes Nodeset.Da Du die anz-Attribute von K-Elementen summieren willst:
K/@anz
das erwischt aber alle K-Elemente, also weiter einschränken auf diejenigen @anz-Attribute in K-Elementen, deren Papa (also das K-Element) ein Attribut bearbeiter mit Wert Frau, also ../@bearbeiter='frau' haben.K/@anz[../@bearbeiter='frau']
Ausgabe der Summe per xsl:value-of:
<xsl:value-of select="sum(K/@anz[../@bearbeiter='frau'])"/>
(evtl. noch den Pfad zum K-Element vor K davorhängen, hängt davon ab, wie das XML aufgebaut ist und in welchem Kontext das entsprechende Template aufgerufen wird).
(Warnung: obiger Code ist nicht getestet, also keine Funktionsgarantie)
cu,
Andreas
Danke :-))
Hallo Andreas,
Ausgabe der Summe per xsl:value-of:
<xsl:value-of select="sum(K/@anz[../@bearbeiter='frau'])"/>
Nur als Tipp:
<xsl:value-of select="sum(K[@bearbeiter='frau']/@anz)"/>
Grüße
Thomas
Hi,
Nur als Tipp:
<xsl:value-of select="sum(K[@bearbeiter='frau']/@anz)"/>
Danke!
War mir nicht direkt klar, daß ich die Nebenbedingungen (das Zeug in den []) auch weiter oben im Pfad ansetzen darf (hab schon länger selbst nichts mit XSLT gemacht...)
cu,
Andreas