CDATA Bereiche in von XSL generietem HTML
Tobel
- xsl
Hallo
Ich würde gerne meine HTML Ausgabe vereinfachen, in dem ich einen allgemien HTML Kopf für jedes HTML Dokument anlege:
<html>
<head>
<title>Titel
</title>
<!-- Jiri CSS einbinden -->
<link rel="stylesheet" href="Jiri.css"/>
</head>
<body>
<table width="70%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
Ich hab dafür ein Template angelegt:
<xsl:template name="HTMLKopf">
<![CDATA[
<html>
<head>
<!-- Titel der Facharbeit in Titelleiste anzeigen -->
<title>Titel
</title>
<!-- Jiri CSS einbinden -->
<link rel="stylesheet" href="Jiri.css"/>
</head>
<body>
<table width="70%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
]]>
</xsl:template>
Doch leider werden die "<" Zeichen in "<" umgewandelt und somit für HTML unbrauchbar, da sie jetzt angezeigt werden:
<html>
<head>
<title>Titel
</title>
<!-- Jiri CSS einbinden -->
<link rel="stylesheet" href="Jiri.css"/>
</head>
<body>
<table width="70%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
Wie muss das Template aussehen, damit meine Ausgabe als HTML Tags generiert werden und nicht angezeigt werden?
Vielen Dank im Voraus,
Tobel
Hi,
Ich hab dafür ein Template angelegt:
<xsl:template name="HTMLKopf">
<![CDATA[
<html>
<head>
[...]
</head>
<body>
<table width="70%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
]]>
</xsl:template>
Sorry, aber XSLT ist nicht dafür gedacht, tags auszugeben, sondern Elemente.
Doch leider werden die "<" Zeichen in "<" umgewandelt und somit für HTML unbrauchbar, da sie jetzt angezeigt werden:
Das ist die logische Folge davon, daß sie in einer CDATA-Section stehen.
Wie muss das Template aussehen, damit meine Ausgabe als HTML Tags generiert werden und nicht angezeigt werden?
Man könnte XSLT mißbrauchen und das HTML als Text ausgeben.
Aber ich rate von diesem Mißbrauch ab.
Da gibt es geeignetere Methoden, um einzelne tags auszugeben.
cu,
Andreas
Ich habe mittlerweile eine Möglichkeit gefunden, um das zu bewerkstelligen:
<xsl:template name="HTMLKopf">
<xsl:text disable-output-escaping="yes">
<![CDATA[
<html>
<head>
[...]
</head>
<body>
<table width="70%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
]]>
</xsl:text>
</xsl:template>
Meinst Du das als "mißbrauchen"?
Hi,
Meinst Du das als "mißbrauchen"?
Ja, Elemente oder einzelne tags als "Text" auszugeben, ist Mißbrauch.
Warum nicht auf die normale Methode:?
<xsl:template match="/">
<html>
<head>
[...]
</head>
<body>
<table width="70%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<xsl:apply-template select="/DeinXMLRootElement"/>
</td>
</tr>
</table>
</body>
</html>
</xsl:template>
Ganz ohne CDATA und ohne XSLT-Vergewaltigung...
cu,
Andreas
Hi,
Meinst Du das als "mißbrauchen"?
Ja, Elemente oder einzelne tags als "Text" auszugeben, ist Mißbrauch.Warum nicht auf die normale Methode:?
<xsl:template match="/">
<html>
<head>
[...]
</head>
<body>
<table width="70%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<xsl:apply-template select="/DeinXMLRootElement"/>
</td>
</tr>
</table>
</body>
</html>
</xsl:template>Ganz ohne CDATA und ohne XSLT-Vergewaltigung...
cu,
Andreas
Weil ich aus einer XML Datei mittels <xls:result-document href=".."> mehrere HTML Seiten generieren muss.
Die Unterteilung erfolgt dabei allerdings nicht regelmäßig, d.h. verschiedene Elemente und deren Kinder können in verschiedenen Dateien liegen.
Gruss,
Tobel
Hi,
Weil ich aus einer XML Datei mittels <xls:result-document href=".."> mehrere HTML Seiten generieren muss.
Die Unterteilung erfolgt dabei allerdings nicht regelmäßig, d.h. verschiedene Elemente und deren Kinder können in verschiedenen Dateien liegen.
Das ist noch lange kein Grund, es nicht richtig zu machen.
cu,
Andreas
Hallo,
Ich hab dafür ein Template angelegt:
<xsl:template name="HTMLKopf">
<![CDATA[
<html>
<head>
<!-- Titel der Facharbeit in Titelleiste anzeigen -->
<title>Titel
</title>
<!-- Jiri CSS einbinden -->
<link rel="stylesheet" href="Jiri.css"/>
</head>
<body>
<table width="70%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
]]>
</xsl:template>
Wozu denn die CDATA-Sektion? Schreib doch einfach HTML ins Template.
Gruß
Franz
Hi,
Wozu denn die CDATA-Sektion? Schreib doch einfach HTML ins Template.
Kann er ja nicht, weil er unvollständige Elemente schreiben will (nur öffnende tags).
Damit wäre das XSL keine XML-Datei mehr...
cu,
Andreas
Hallo Andreas,
Wozu denn die CDATA-Sektion? Schreib doch einfach HTML ins Template.
Kann er ja nicht, weil er unvollständige Elemente schreiben will (nur öffnende tags).
Ach so, ich dachte das wäre nur auf die Schnelle hingeschrieben...,
Gruß
Franz