XSL tabellarische Darstellung
Lily
- xsl
0 Cheatah0 Thomas J.S.0 Lily
Hallo,
Ich möchte die folgende XML-Datei tabellarisch in XSL darstellen
<bearbeiter>
<K bearbeiter="mann" param="no" anz="5"/>
<K bearbeiter="frau" param="yes" anz="2"/>
<K bearbeiter="frau" param="no" anz="3"/>
<K bearbeiter="dingsda" param="no" anz="1"/>
<K bearbeiter="bla" param="yes" anz="2"/>
<K bearbeiter="blabla" param="yes" anz="3"/>
<K bearbeiter="auchda" param="no" anz="1"/>
<K bearbeiter="nixda" param="yes" anz="2"/>
<K bearbeiter="nixda" param="no" anz="4"/>
</bearbeiter>
und zwar:
bearbeiter yes no
mann - 5
frau 2 3
dingsda - 1
bla 2 -
blabla 3 -
auchda - 1
nixda 2 4
Kann jemand mir helfen? danke
Lily
Hi,
Ich möchte die folgende XML-Datei tabellarisch in XSL darstellen
XSL dient der Transformation eines XML in ein anderes. Es dient _nicht_ der Darstellung. Dafür ist CSS zuständig. Was genau ist also das Problem, welches Du nicht selbst lösen konntest?
Cheatah
XSL dient der Transformation eines XML in ein anderes. Es dient _nicht_ der Darstellung. Dafür ist CSS zuständig. Was genau ist also das Problem, welches Du nicht selbst lösen konntest?
Die Informationen von XML in eine XSL Datei tabellarisch abbilden
Lily
Hi,
Was genau ist also das Problem, welches Du nicht selbst lösen konntest?
Die Informationen von XML in eine XSL Datei tabellarisch abbilden
das ist nicht "genau", und zwar nicht zuletzt, weil in XSL nicht abgebildet wird, sondern umgewandelt. Ich weiß, was Du zuerst hast - was aber willst Du am Ende rausbekommen, und welches Problem hast Du bei dem Versuch, dieses Ergebnis zu erzielen?
Cheatah
Hi,
Was genau ist also das Problem, welches Du nicht selbst lösen konntest?
Die Informationen von XML in eine XSL Datei tabellarisch abbildendas ist nicht "genau", und zwar nicht zuletzt, weil in XSL nicht abgebildet wird, sondern umgewandelt. Ich weiß, was Du zuerst hast - was aber willst Du am Ende rausbekommen, und welches Problem hast Du bei dem Versuch, dieses Ergebnis zu erzielen?
Ich habe ein Problem fass ich frau und nixda in eine Zeile umwandele.
ich möchte
bearbeiter yes no
frau 2 3
nixda 2 4
Ich kriege immer
frau 2
frau 3
nixda 2
nixda 4
Das ist leider falsch :-(
Lily
Hi,
poste bitte mal den XSL Code, Fehler raten ohne Quellcode ist so anstrengend.
Gruss
Marko
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:key name="bearbeiterkey" match="K" use="@bearbeiter" />
<xsl:template match="/bearbeiter">
<html>
<head>
<title>Untitled</title>
</head>
<body>
<table width="400" border="1">
<tr>
<td>bearbeiter</td>
<td>yes</td>
<td>no</td>
</tr>
<xsl:for-each select="K">
<xsl:variable name="bearbeitername" select="current()[generate-id() = generate-id(key('bearbeiterkey', @bearbeiter))]" />
<xsl:if test="$bearbeitername = true()">
<tr>
<td><xsl:value-of select="@bearbeiter" /></td>
<td>
<xsl:if test="@param = 'yes'">
<xsl:value-of select="@anz" />
</xsl:if>
 
</td>
<td>
<xsl:if test="@param = 'no'">
<xsl:value-of select="@anz" />
</xsl:if>
 
</td>
</tr>
</xsl:if>
<xsl:if test="$bearbeitername != true()">
<tr>
<td>...<xsl:value-of select="@bearbeiter" /></td>
<td>
<xsl:if test="@param = 'yes'">
<xsl:value-of select="@anz" />
</xsl:if>
 
</td>
<td>
<xsl:if test="@param = 'no'">
<xsl:value-of select="@anz" />
</xsl:if>
 
</td>
</tr>
</xsl:if>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
<iframe src="http://forum.de.selfhtml.org/my/?t=61231&m=345087" width="90%" height="90%">http://forum.de.selfhtml.org/my/?t=61231&m=345087</iframe>
Hi,
was aber willst Du am Ende rausbekommen, und welches Problem hast Du bei dem Versuch, dieses Ergebnis zu erzielen?
ich möchte
bearbeiter yes no
ich ergänze meine Frage: Welches _XML_ möchtest Du am Ende herausbekommen, und welches Problem hast Du bei dem Versuch, dieses Ergebnis zu erzielen?
Cheatah
Hallo,
Ich möchte die folgende XML-Datei tabellarisch in XSL darstellen
Nach dem du mich ja per Mail zur selben Frage (die du hier im Forum schon gestellt hast) gefragt hast und ich dir geantwortet habe, dass ich anonyme Fragen nur im Forum beantworte, ziehst du vor lieber anonym im Forum nochmal zu fragen. Ich halte das für einen bedauerlichen Zustand.
Sei's drum, du wirst schon wissen, wer du bist und warum du lieber anonym bleibst.
Hier die Lösung
Grüße
Thomas
-----------------------------------
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:key name="bearbeiterkey" match="K" use="@bearbeiter" />
<xsl:template match="/bearbeiter">
<html>
<head>
<title>Untitled</title>
</head>
<body>
<table width="400" border="1">
<tr>
<td>bearbeiter</td>
<td>yes</td>
<td>no</td>
</tr>
<xsl:for-each select="K[generate-id() = generate-id(key('bearbeiterkey', @bearbeiter))]">
<tr>
<td><xsl:value-of select="@bearbeiter" /></td>
<td>
<xsl:for-each select="key('bearbeiterkey', @bearbeiter)">
<xsl:if test="@param = 'yes'">
<xsl:value-of select="@anz" />
</xsl:if>
</xsl:for-each>
 
</td>
<td>
<xsl:for-each select="key('bearbeiterkey', @bearbeiter)">
<xsl:if test="@param = 'no'">
<xsl:value-of select="@anz" />
</xsl:if>
</xsl:for-each>
 
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Danke für Deine Hilfe
Lily