Hallo Holger
Ich würde es mal mit sowas versuchen:
<xsl:template match="/">
<xsl:for-each select="//arc">
<!-- Ist der Linkt auf oberster Stufe? (kommt nicht in to for) -->
<xsl:if test="@from!=//arc/@to">
<xsl:apply-templates match="arc">
<xsl:with-param name="stufe" select="1" />
</xsl:apply-templates>
</xsl:if>
</xsl:for-each>
</xsl:template>
<xsl:template match="arc">
<xsl:param name="stufe" />
<!-- Link ausgeben -->
<p><xsl:attribute name="class">
stuffe<xsl:value-of select="$stufe" />
</xsl:attribute>
<xsl:value-of select="@from" />
</p>
<!-- Unterelemente suchen -->
<xsl:for-each select="@to=//arc/@from" />
<!-- Rekursion -->
<xsl:apply-templates match="arc">
<xsl:with-param name="stufe" select="$stufe+1" />
</xsl:apply-templates>
</xsl:for-each>
</xsl:template>
Ich hab's nicht ausprobiert, in der Art müsste es jedoch funktionieren. Vor allem die XPath-Ausdrücke musst du dir nochmals genauer anschauen, die kann ich noch nicht so gut aus dem FF.
Gruss
Tom2