Hallo Steffen,
XSL soll jetzt dafuer sorgen, dass ausser dem weitaus groesserem,
XML-basierten Texten auch die Teile mit HTML-Auszeichnung ausgegeben
werden (und die HTML-Tags natuerlich als solche interpretiert werden).
Ich nehme einfach mal an, du möchtes alles, was innerhalb eines XML-Tags mit dem Namen <HtmlEinschub> steht direkt in den Ergebnisbaum (das Ergebnisdokument) schreiben, welcher ein HTML-Dokument darstellt. Dazu benötigst du zwei Dinge zu dem sonstigen Template-Kram:
- Die Anweisung xsl:output als Top-Level-Element mit dem Attribut method und dem Wert "html" für dieses Attribut.
- Die Anweisung xsl:copy-of, um Teile des Quellbaums (Quelldokuments) mitsamt der Kinder in den Ergebnisbaum zu schreiben
Also z.B.:
XML-Datei
<?xml version="1.0" encoding="iso-8859-1"?>
<ausgabe>
<keinHtml>Es folgt HTML aus dem Quelldokument:</keinHtml>
<HtmlAuszug>
<p>Ein schöner HTML-Paragraph
<br/> Ja auch mit Zeilenumbrüchen und schön XML-konform.
Und noch ne Tabelle
<table border="1">
<tr>
<td>Zelle 1</td>
<td>Zelle 2</td>
</tr>
</table>
</p>
</HtmlAuszug>
</ausgabe>
XSLT-Datei
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/TR/REC-html40">
<xsl:output method="html"/>
<xsl:template match="/">
<html>
<head>
<title>Ausgabe von HTML mit xsl:copy</title>
</head>
<body>
<xsl:apply-templates />
</body>
</html>
</xsl:template>
<xsl:template match="keinHtml">
xsl:apply-templates/
</xsl:template>
<xsl:template match="HtmlAuszug">
<xsl:copy-of select="."/>
</xsl:template>
</xsl:stylesheet>
<xsl:ouput method="html"/> sorgt dafür, dass das XHTML als HTML ausgegeben wird. Also <br/> zu <br> wird usw.
Für die HtmlAuszug-Elemente gibt es eine eigene Template-Rule, welche dir einfach nur den Inhalt des Elements in das Ergebnis-Dokument kopiert.
Hoffe das hilft dir weiter.
Gruß
Franz