Mr. Horse: Knoten inline ersetzen?

Hallo,

ich habe ein XML-Dokument mit Kapiteln (chapter) vorliegen. Die Kapitel bestehen wiederum aus Absätzen, den para-Knoten. Nun gibt es aber innerhalb dieser para mitten im Text footnote-Elemente:
<para>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non nulla. In eget enim. Vivamus ac eros. Pellentesque justo urna, tempor eget
   <footnote xml:id="footnote0">Hier ein Literaturhinweis</footnote>
placerat in, elit. Integer a nibh. Integer porta. Aliquam dapibus sem ut eros. Morbi a libero. Phasellus ultrices ante at risus
   <footnote xml:id="footnote1">Noch ein Hinweis</footnote>
habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
</para>

Ich muss nun für die HTML-Ausgabe diese footnote-Elemente inline, also an der Stelle im Text, an der sie im XML stehen, ersetzen durch span-Elemente.

Mit apply-templates komme ich da aber nicht weit, weil damit ja alle footnote-Elemente innerhalb des betreffenden para-Knotens gleichzeitig ersetzt und ans Ende des Inhalts des Absatzes (bzw. des von mir per XSL erzeugten p-Elements) gehängt werden.

Kann es sein, dass das mit XSLT gar nicht zu machen ist, weil die vorliegende XML-Struktur so nicht vorteilhaft ist?
Oder habe ich einfach gerade ein dickes Brett vor dem Kopf?

Bin für Hinweise dankbar!

Thanx und ciao,
Andreas

--
No, Sir, I don't like it.
  1. Hallo,

    nach einiger Sucherei habe ich diese sehr hilfreiche Seite gefunden: Utility Stylesheets.
    Dort war jetzt speziell der Abschnitt „Convert Mixed Content to Element Content“ interessant für mich.

    In abgewandelter Form funktioniert das in meinem Fall nun so:

    ...
    <p><xsl:call-template name="paragraph" /></p>
    ...

    <xsl:template match="footnote">
       <span style="background:yellow;"><xsl:value-of select="./para" /></span>
    </xsl:template>

    <xsl:template match="para" mode="paragraph" name="paragraph">
       <xsl:apply-templates select="node()" />
    </xsl:template>

    Das funktioniert nun zumindest so, wie ich es brauche.
    Ob das nun auch eine sinnvolle und elegante Lösung ist, weiß ich nicht.

    So long,
    Mr Horse

    --
    No, Sir, I don't like it.
    1. Warum nicht einfach so?

        
      <xsl:template match="/">  
              <xsl:apply-templates/>  
      </xsl:template>  
      <xsl:template match="para">  
              <p>  
                  <xsl:apply-templates/>  
              </p>  
      </xsl:template>  
      <xsl:template match="footnote">  
              <span>  
                  <xsl:apply-templates/>  
              </span>  
      </xsl:template>