Hallo,
ich bin leider neu auf diesem gebiet und habe daher ein paar grundlegende Fragen.
Ich bin gerade dabei eine XML Datei via XSLT in eine HTML Datei zu transferieren, leider bin ich dabei auf ein Hindernis gestoßen für das ich bis jetzt keine annehmbare Lösung gefunden habe.
Ich möchte unter anderem eine Tabelle generieren mit dem Kopf „Group“ und „Member“.
Der Inhalt der Zielen ist jeweils ein Gruppenname und „n“ Member-Namen mit Komma getrennt.
Die Anzahl der Member kann von Gruppe zu Gruppe unterschiedlich sein „0“ bis „n“.
Ich habe es bis her nur über eine If Anweisung realisieren Können, dies ist aber nicht sinnvoll da ich die Mindestanzahl der Member so im XSLT code fest vorgeben muss.
Da meines Wissens es im XSLT keine For-Schleife existieren habe ich es mit einer for-each versucht leider ist mir diese nicht gelungen.
Die gewünschte Ausgabe sollte in einer Tabelle wie folgt ausgegeben werden:
Group Member
FFH [ Manni, Lilo, Digi, Susi ]
Falls kein Member in der Gruppe vorhanden ist soll die Ausgabe wie folgt sein:
Group Member
KLM [ ]
Für Lösungen/Anregungen bin ich sehr Dankbar.
XSLT code mit IF-Schleife:
<xsl:template match="Group">
<table width="80%" border="1" cellspacing="0" cellpadding="2"><tr bgcolor="#808080">
<th>Group</th>
<th>Member</th>
</tr>
<tr>
<td><xsl:value-of select="@Name" /></td>
<td>[
<xsl:if test="./Member[1]=./Member[last()]">
<xsl:value-of select="./Member[1]" /> <w/>
</xsl:if>
<xsl:if test="./Member[1]!=./Member[last()]">
<xsl:value-of select="./Member[1]" />, <w/>
</xsl:if>
<xsl:if test="./Member[2]=./Member[last()]">
<xsl:value-of select="./Member[2]" /> <w/>
</xsl:if>
<xsl:if test="./Member[2]!=./Member[last()]">
<xsl:value-of select="./Member[2]" />, <w/>
</xsl:if>
<xsl:if test="./Member[3]=./Member[last()]">
<xsl:value-of select="./Member[3]" /> <w/>
</xsl:if>
<xsl:if test="./Member[3]!=./Member[last()]">
<xsl:value-of select="./Member[3]" />, <w/>
</xsl:if>
<xsl:if test="./Member[4]=./Member[last()]">
<xsl:value-of select="./Member[4]" /> <w/>
</xsl:if>
<xsl:if test="./Member[4]!=./Member[last()]">
<xsl:value-of select="./Member[4]" />, <w/>
</xsl:if>
]
</td>
</tr>
</table>
</xsl:template>
</xsl:stylesheet>
Anbei ein Ausschnitt der XML Source :
<?xml version="1.0" encoding="UTF-8" ?>
<Group Name="FFH" >
<Member>Manni</Member>
<Member>Lilo</Member>
<Member>Digi</Member>
<Member>Susi</Member>
</Group>
<Group Name="KLM" >
<Member></Member>
</Group>
Gruss
Danke
Addy
ich bin leider neu auf diesem gebiet und habe daher ein paar grundlegende Fragen.
Ich bin gerade dabei eine XML Datei via XSLT in eine HTML Datei zu transferieren, leider bin ich dabei auf ein Hindernis gestoßen für das ich bis jetzt keine annehmbare Lösung gefunden habe.
Ich möchte unter anderem eine Tabelle generieren mit dem Kopf „Group“ und „Member“.
Der Inhalt der Zielen ist jeweils ein Gruppenname und „n“ Member-Namen mit Komma getrennt.
Die Anzahl der Member kann von Gruppe zu Gruppe unterschiedlich sein „0“ bis „n“.
Ich habe es bis her nur über eine If Anweisung realisieren Können, dies ist aber nicht sinnvoll da ich die Mindestanzahl der Member so im XSLT code fest vorgeben muss.
Da meines Wissens es im XSLT keine For-Schleife existieren habe ich es mit einer for-each versucht leider ist mir diese nicht gelungen.
Die gewünschte Ausgabe sollte in einer Tabelle wie folgt ausgegeben werden:
Group Member
FFH [ Manni, Lilo, Digi, Susi ]
Falls kein Member in der Gruppe vorhanden ist soll die Ausgabe wie folgt sein:
Group Member
KLM [ ]
Für Lösungen/Anregungen bin ich sehr Dankbar.
XSLT code mit IF-Schleife:
<xsl:template match="Group">
<table width="80%" border="1" cellspacing="0" cellpadding="2"><tr bgcolor="#808080">
<th>Group</th>
<th>Member</th>
</tr>
<tr>
<td><xsl:value-of select="@Name" /></td>
<td>[
<xsl:if test="./Member[1]=./Member[last()]">
<xsl:value-of select="./Member[1]" /> <w/>
</xsl:if>
<xsl:if test="./Member[1]!=./Member[last()]">
<xsl:value-of select="./Member[1]" />, <w/>
</xsl:if>
<xsl:if test="./Member[2]=./Member[last()]">
<xsl:value-of select="./Member[2]" /> <w/>
</xsl:if>
<xsl:if test="./Member[2]!=./Member[last()]">
<xsl:value-of select="./Member[2]" />, <w/>
</xsl:if>
<xsl:if test="./Member[3]=./Member[last()]">
<xsl:value-of select="./Member[3]" /> <w/>
</xsl:if>
<xsl:if test="./Member[3]!=./Member[last()]">
<xsl:value-of select="./Member[3]" />, <w/>
</xsl:if>
<xsl:if test="./Member[4]=./Member[last()]">
<xsl:value-of select="./Member[4]" /> <w/>
</xsl:if>
<xsl:if test="./Member[4]!=./Member[last()]">
<xsl:value-of select="./Member[4]" />, <w/>
</xsl:if>
]
</td>
</tr>
</table>
</xsl:template>
</xsl:stylesheet>
Anbei ein Ausschnitt der XML Source :
<?xml version="1.0" encoding="UTF-8" ?>
<Group Name="FFH" >
<Member>Manni</Member>
<Member>Lilo</Member>
<Member>Digi</Member>
<Member>Susi</Member>
</Group>
<Group Name="KLM" >
<Member></Member>
</Group>
Gruss
Danke
Addy
Kommentar