MankoFranko: Text in Mixed Content erfassen

Beitrag lesen

Hallo, ich habe folgendes XPath Problem:

Fall 1:
Die betreffende XML-Struktur sieht wie folgt aus:

<para>
   Hier steht Text
   <Special>
      Hier steht besonderer Text
   </Special>
</para>

In diesem Fall soll über das Stylesheet ein <br/> vor dem "besonderen Text" eingefügt werden. Das Para bricht ja sowieso um:

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

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

-----------------------------------------------
Fall 2:
Fehlt allerdings der normale Text vor dem besonderen, der XML-Auschnitt wäre also

<para>
   <Special>
      Hier steht besonderer Text
   </Special>
</para>

dann soll kein <br/> erfolgen, da sonst der Abstand zum vorhergehenden Inhalt zu groß werden würde.

-----------------------------------------------
Ich habe schon versucht, im Special-Template das Statement

<xsl:if test="./preceding-sibling">
   <br/>
</xsl:if>

anzuwenden. Dummer- allerdings auch logischerweise erkennt dieses einfachen Text nicht als Node und läßt das <br/> auch im ersten Fall weg.

Hat jemand eine Idee, wie ich rausfinden kann, ob vor einem Element noch einfacher Text kommt?

Danke für Eure Hilfe!