XML in HTML anzeigen - Summe berechnen von idRef?!
Qiuna
- xml
Hallöchen zusammen,
Ich habe ein XML Datei und möchte nun diese Datei in Html darstellen
<unternehmen>
<projekte>
<projekt id="1">
<name>p1</name>
<price>50</price>
</projekt>
<projekt id="2">
<name>p2</name>
<price>100</price>
</projekt>
<projekt id="3">
<name>p2</name>
<price>20</price>
</projekt>
</projekte>
<person>
<name>Keller Manuel</name>
<email>keller@muster.com</email>
<kuerzel>kell</kuerzel>
<projekte>
<projektRef idref="1"/>
</projekte>
</person>
<person>
<name>Minostrone Daniel</name>
<email>Minostrone@muster.com</email>
<kuerzel>mino</kuerzel>
<projekte>
<projektRef idref="2"/>
</projekte>
</person>
<person>
<name>Stuja Brigitte</name>
<email>Stuja@muster.com</email>
<kuerzel>stuj</kuerzel>
<projekte>
<projektRef idref="1"/>
</projekte>
</person>
<person>
<name>de Spindler Alexandre</name>
<email>deSpindler@muster.com</email>
<kuerzel>desa</kuerzel>
<projekte>
<projektRef idref="3"/>
</projekte>
</person>
</unternehmen>
Aber leider zählt es mir entweder von den Projekten alle Beträge zusammen oder gar nichts.
Wie kann ich das XSLT so erstellen, dass es nur die Summe berechnet, in welcher zb. Person A ist und Summe der Projekte Person b etc?!
<xsl:key name="key1" match="unternehmen" use="@id"/>
<xsl:template match="/">
<html>
<body>
<h2>Adressbuch mit Bilder</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Name mit Mailadresse</th>
<th>Bilder</th>
<th>Projekt Summe</th>
</tr>
<xsl:for-each select="unternehmen/person">
<tr>
<td><li><a href="mailto:{email}"><xsl:value-of select="name"/></a></li></td>
<td><img src="http://pd.zhaw.ch/portraet/images/{kuerzel}.jpg" width="85" height="70" /></td>
<td><xsl:value-of select="sum(key(key1', '[@id]')../projekte/projekt/price)"/> </td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Hallo Qiuna,
Aber leider zählt es mir entweder von den Projekten alle Beträge zusammen oder gar nichts.
Was soll im genannten Beispielcode herauskommen und kann ggf. XSLT 2.0 verwendet werden?
Grüße,
Thomas
Hallo Qiuna,
Aber leider zählt es mir entweder von den Projekten alle Beträge zusammen oder gar nichts.
Was soll im genannten Beispielcode herauskommen und kann ggf. XSLT 2.0 verwendet werden?
Grüße,
Thomas
Ich sehe 3 Spalten Namen, Bilder, Summe. Jedoch berechnet es Summe nicht wo die Beispielmitarbeiter Mitglied sind bei den Projekten...
Hallo Qiuna,
Aber leider zählt es mir entweder von den Projekten alle Beträge zusammen oder gar nichts.
Was soll im genannten Beispielcode herauskommen und kann ggf. XSLT 2.0 verwendet werden?
Grüße,
ThomasIch sehe 3 Spalten Namen, Bilder, Summe. Jedoch berechnet es Summe nicht wo die Beispielmitarbeiter Mitglied sind bei den Projekten...
Der Preis soll zusammen gezählt werden, ich weiss nicht ob xslt 2.0 geht, grosse änderungen zum vorgänger?
Hallo Qiuna,
Der Preis soll zusammen gezählt werden, ich weiss nicht ob xslt 2.0 geht, grosse änderungen zum vorgänger?
Ich sehe vier Personen. Was soll zahlenmäßig bei diesen stehen?
Wenn es nicht direkt im Browser laufen muss, bieten sich XSLT 2.0 und ein Prozessor wie Saxon oder AltovaXML an. Es gibt vielfältige Detailverbesserungen, gerade im Bereich Gruppierung (xsl:for-each-group).
Grüße,
Thomas
Die Summe vom Umsatz wo die Mitarbeiter Mitglied sind?
Es sollte im Browser laufen...
Hallo Qiuna,
Die Summe vom Umsatz wo die Mitarbeiter Mitglied sind?
Du weißt es selbst nicht?
Es sollte im Browser laufen...
Dann 1.0.
Grüße,
Thomas
Hallo Qiuna,
Die Summe vom Umsatz wo die Mitarbeiter Mitglied sind?
Du weißt es selbst nicht?
Nein ich weiss es nicht wie es geht mit ID Ref darauf zugreifen.
Zb. Person 1 Umsatz 50, Person 2 Umsatz 100 Person 3 Umsatz 70
Wenn Person 3 zb. an mehrern Projekten arbeiten würde?!
grüesse
Qiuna
Hallo Qiuna,
Zb. Person 1 Umsatz 50, Person 2 Umsatz 100 Person 3 Umsatz 70
Wenn Person 3 zb. an mehrern Projekten arbeiten würde?!
Ich verstehe das Beispiel nicht: Person 2 mit Summe 100 gibt es nicht, aber zwei Personen, welche jeweils auf die id="1" zugreifen. (BTW: Falls in DTD id als ID definiert ist, wären Zahlenwerte so nicht gültig, als CDATA schon).
Gib mal ein plausibles Beispiel an mit dem erwarteten Ergebnis.
Grüße,
Thomas
Projekt A 20 Umsatz
Projekt B 30 Umsatz
Projekt C 40 Umsatz
Also Person 1 arbeitet in Projekt A und Projekt B
Person 2 nur in Projekt C und Person 3 in Projekt B und C.
Ich möchte nur den Auszug evtl. mit Key id - Die summe der Projekte rausgibt wo die Personen arbeiten.
Also zb. Person 1 dann 50 Umsatz, Person 2 nur 40 und Person 3 zb. 70
Also möchte nur für die XSLT Datei den richtigen link:
<td><xsl:value-of select="sum(key(key1', '[@id]')../projekte/projekt/umsatz)"/> </td>
Habs rausgefunden :P
sum(key('test',projekte/projektRef/@idref)/umsatz)"/>
und es funktioniert :P
Danke trotzdem