szsoftware: xsl:apply templates klappt nicht

Beitrag lesen

Hallo liebe Gemeinde,
ich doktore schon ne Weile am folgenden Problem rum:
Ich habe eine xml-Datei mit Daten. Die Struktur ist so:

<root>
 <toc>
  <top id="1">
   <ueberschrift>Top 1</ueberschrift>
  </top>

<top id="2">
   <ueberschrift>Top 2</ueberschrift>
  </top>
 </toc>

<data>
  <top id="1">
   Bla Fasel <div>hervorgehoben</div> <span>sonstwas</span>
   <ul>
    <li>Foo</li>
    <li>Bar</li>
   </ul>
   Ende der Beispieldaten
  </top>

<top id="2">
   Daten des Topic 2
  </top>
 </data>
</root>

Nun habe ich eine XSL-Datei die in etwa so funktioniert:

<xsl:template match="/">
 <html>
  <head>
   <title>Foobar</title>
  </head>

<body>
   <xsl:foreach select="/root/toc/top">
    <!-- hier ist eigentlich noch ein xsl:sort -->
    <xsl:value-of select="ueberschrift" />
   </xsl:foreach>

<hr noshade>

<xsl:foreach select="/root/toc/top">
     <!-- hier ist eigentlich noch ein xsl:sort -->
     <!-- Das mache ich hier so, damit die Reihenfolge der Daten mit dem TOC
korreliert-->
     <xsl:variable name="id" select="@id" />
     <xsl:value-of select="/protokoll/data/top[@id=$id]" />
     <!-- wie kann jetzt das ul-, li-, div- oder span-Tag formatiert werden, das in der xml in der entsprechenden Data-Sektion vorhanden ist?  -->
   </xsl:foreach>
  </body>
 </html>
</xsl:template>

<xsl:template match="*">
 <xsl:apply-templates />
</xsl:template>

<xsl:template match="div">
 <span style="border:1px solid red"><xsl:value-of select="."/></span>
</xsl:template>

Ende der Beispieldaten

Also, ich denke vielleicht, dass ich die Logik der ganzen Sache nicht so richtig gewählt habe. Vielleicht genügt ja aber doch nur ne kleine Änderung.
Über Eure Hilfe würde ich mich sehr freuen.
Ach ja, die Originaldatei ist eine xsl:fo Formatierung. Ich habe hier eine einfache HTML-Transformation gewählt.

CU,
Sven