Hallo,
ich sitze nun schon eine Weile an einem Problem und komme einfach nicht dahinter, wieso es nicht klappt. Also ich habe ein XML File, welches Text mit xhtml:br enthält, wobei ein Teil verschachtelt ist. Die xhtml:br möchte ich ersetzen durch <![CDATA[<br/> ]]>. Mein XSL-File macht das auch, gibt aber dann den Text nochmal mit aus und das mittendrin.
Mein xml File
...
xhtml:div
Text1 xhtml:br/
Text2 xhtml:br/
Text3 xhtml:br/
Text mit Titel <Titel>Hallo</Titel> und Text
</xhtml:div>
...
Hier meine XSL File Inhalt:
<xsl:template match="*">
xsl:copy
<xsl:copy-of select="@*" />
<xsl:apply-templates />
</xsl:copy>
</xsl:template>
<xsl:template match="xhtml:div/*" >
xsl:choose
<xsl:when test="name() = 'br'">
<![CDATA[<br/> ]]>
</xsl:when>
xsl:otherwise
<xsl:copy-of select="."/>
<xsl:if test="position() != last()">
<xsl:apply-templates />
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Die Ausgabe ist dann
xhtml:divText1 <br/> Text2 <br/> Text3 <br/> Text mit Titel Text1 Text2 Text3 Text mit Titel <Titel>Hallo Hallo</Titel> und Text und Text</xhtml:div>
Was müsste ich anders machen damit es so aussieht:
xhtml:divText1 <br/> Text2 <br/> Text3 <br/> Text mit Titel <Titel>Hallo </Titel> und Text</xhtml:div>
Gruß
joy