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!