Kuk i for-each
Jeg har brug for hjælp til at få dannet nogle nestede for-each der ikke, som nedenstående, gentager for mange gange. Jeg håber at det kan forstås udfra denne gengivelse.Jeg er ny på området, så det jeg har brug for er nok mest at få fod på de allerede anvendte begreber.
--- XML ---
<A>
<B>
<b></b> <!-- Pri. Få gentag -->
<C>
<c></c> <!-- Sek. Flere gentag -->
<D>
<d1></d1>
<d2></d2>
<d3></d3>
<d4></d4>
<d5></d5>
<KO>
<k1></k1>
<k2></k2>
<k3></k3>
</KO>
</D>
<E>
<e1></e1>
<F> <!-- Elem. Mange gentag -->
<G>
<t1></t1>
<t2></t2>
<t3></t3>
<t4></t4>
<t5></t5>
<t6></t6>
<KO>
<k1></k1>
<k2></k2>
<k3></k3>
</KO>
</G>
<H>
<t1></t1>
<t2></t2>
<t3></t3>
<t4></t4>
<t5></t5>
<t6></t6>
<KO>
<k1></k1>
<k2></k2>
<k3></k3>
</KO>
</H>
</F>
</E>
</C>
</B>
</A>
--- XSL ---
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/TR/REC-html40" version="1.0">
<xsl:output method="html"/>
<xsl:template match="/">
<html><head><title>Test3</title></head>
<body>
<table>
<xsl:for-each select="A/B">
<tr>
<td>
<xsl:value-of select="b"/>
</td>
</tr>
<tr>
<td>.</td>
</tr>
<tr>
<td>
<xsl:for-each select="/">
<xsl:apply-templates select="A/B/C"/>
<tr>
<td>
<xsl:for-each select="/">
<xsl:value-of select="c"/>
</xsl:for-each>
</td>
</tr>
</xsl:for-each>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="C">
<table >
<tr><td></td></tr>
<tr>
<td bgcolor="#C0C000">
<xsl:value-of select="c"/>
</td>
<td bgcolor="#C0C0C0">A-1te</td>
<td bgcolor="#C0C0C0">A-2det</td>
<td bgcolor="#C0C0C0">B-1te</td>
<td bgcolor="#C0C0C0">B-2det</td>
</tr>
<xsl:for-each select="E/.">
<tr>
<td width="20%" rowspan="2">
<xsl:value-of select="e1"/>
</td>
<td>
<xsl:value-of select="F/G/t1"/>
</td>
<td>
<xsl:value-of select="F/G/t2"/>
</td>
<td>
<xsl:value-of select="F/H/t1"/>
</td>
<td><xsl:value-of select="F/H/t2"/>
</td>
</tr>
<tr>
<td colspan="2">
<xsl:value-of select="F/G/t3"/>
</td>
<td colspan="2">
<xsl:value-of select="F/H/t3"/>
</td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>