Hallo Kollege,
Ich möchte jetzt mit xsl:for-each/ durch jedes Element gehen.
Das ganze soweit wie möglich rekursiv über die einzelnen Ebenen.
Also hat man jetzt noch 5 Ebenen drunter ein <component/> Element, soll das natürlich mit Einbezogen werden. Sind es nur 4 sollen sich halt nur 4 Schleifen ineinander schachteln.
Die Verwendung von xsl:for-each ist hier unnötig kompliziert. Wenn ich es richtig verstanden habe, dann soll eine Visualisierung des Baumes stattfinden. Hier mal ein Versuch mit Listenelementen (ul/li):
<xsl:template match="/">
<ul>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match="component">
<li>component</li>
<xsl:if test="count(component) >= 1">
<li><ul>
<xsl:apply-templates select="component"/>
</ul></li>
</xsl:if>
</xsl:template>
Damit wird diese Ausgabe erhalten:
<ul>
<li>component</li>
<li>
<ul>
<li>component</li>
<li>
<ul>
<li>component</li>
<li>component</li>
</ul>
</li>
<li>component</li>
<li>
<ul>
<li>component</li>
</ul>
</li>
</ul>
</li>
<li>component</li>
<li>
<ul>
<li>component</li>
<li>
<ul>
<li>component</li>
<li>component</li>
<li>
<ul>
<li>component</li>
<li>component</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
Grüße,
Thomas