Hallo Philipp,
Ich habe jetzt mal alls aus der Posting gelöscht.
Sorry, wenn ich etwas nerve, aber du hast mal gesagt:
----------
<component>
<class name="v1" />
<class name="v2" extends="v1"/>
<class name="v3" extends="v2"/>
<class name="v21" extends="v1"/>
<class name="v31" extends="v21"/>
</component>
------------
Dein XML hat davon nichts:
(ich habe alles auf das wesentliche reduziert (die sortierung ist von mir, das können wir iher ignorieren))
-------------
<component name="Doc">
<class name="DocParser"></class>
<class name="DocAttribute"> </class>
<class name="DocLibrary" extends="XML.DOM.Document"></class>
<class name="DocExternalClass" extends="XML.DOM.Element"></class>
<class name="DocComponent" extends="XML.DOM.Element"></class>
<class name="DocClass" extends="XML.DOM.Element"></class>
<class name="DocMethod" extends="XML.DOM.Element"></class>
<class name="DocItem" extends="XML.DOM.Element"></class>
<class name="DocClassMap" extends="XML.DOM.NodeList"></class>
<class name="DocAttributeList" extends="XML.DOM.NodeList"></class>
<class name="DocMethodList" extends="XML.DOM.NodeList"></class>
<class name="DocOutputList" extends="XML.DOM.NodeList"></class>
<class name="DocInputList" extends="XML.DOM.NodeList"></class>
</component>
<external_component name="XML.DOM">
<external_class name="XML.DOM.Document" extends="XML.DOM.Node"></external_class>
<external_class name="XML.DOM.Element" extends="XML.DOM.Node"></external_class>
<external_class name="XML.DOM.NodeList" extends="XML.DOM.Node"></external_class>
<external_class name="XML.DOM.Node"></external_class>
</external_component>
</library>
--------------------
Wie dem auch sei:
Ich habe dir einen XSL-Sheet hochgeladen (weil ich glaube, dass der nicht in einer Posting passt.
http://www.meta-text.net/test/doc.xsl
Ich habe damit gearbeitet, was ich hatte: also mit deinem zuletzt verlinkten doc.xml.
Ich steige damit langsam aus diesem Thread aus (ich mag Perl nicht und das animiert mich nicht gerade dazu mich in Klassen und Methoden zu vertiefen *g*), mir ging es ja nur darum, dass ich überzeugt bin, dass deine anforderungen auch mit XSLT erfüllt werden können.
Ich habe die interne Verlinkung etwas überarbeiten müssen, denn einge Methoden in verschiedenen Klassen hatten den selben Namen.
Sicher könnte man einiges anderes machen: z.B. bei der Rekursion statt for-each mit key's arbeiten etc., aber ich denke das wesentlich ist "angekommen".
Schöne Grüße
Thomas