![]() |
HTML in XSLT-Stylesheets
Hi,
ich habe eine XML-Datei, die ich derzeit mit einem XSLT-Stylesheet versehen will. Ist auch alles kein Problem, nur habe ich in meiner XML-Datei eine Node mit CDATA-Daten, in denen HTML vorkommt. Nun soll dieses HTML auch als solches dargestellt werden. Allerdings wird jedoch nur der Text der Node als solcher ausgegeben, d.h. ich sehe die Tags als Text. Ich habe erstmal versucht einen Code von MathiasSimmack zu verwenden, den ich in der DP gefunden habe:
XML-Code:
Da macht sich aber keine Veränderung sichtbar. Auch das Einbinden des XHTML-Namespaces hat keinen Erfolg gebracht:
<xsl:template match="ul|ol|li|img|p|a|b|u|i|br|code|pre|span|iframe|del|small|hr|h1|h2|h3|acronym">
<xsl:copy> <xsl:copy-of select="@*"/> <xsl:apply-templates/> </xsl:copy> </xsl:template>
XML-Code:
Gibt es noch andere Lösungswege oder hab ich irgendwas falsch gemacht? :gruebel:
<xsl:template match="version">
<tr> <td style="text-align: center;">[b]<xsl:value-of select="@id" />[/b]</td> <td style="text-align: center;"><xsl:value-of select="@date" /></td> <td xmlns="http://www.w3.org/1999/xhtml"><xsl:apply-templates select="changelog" /></td> </tr> </xsl:template> Chris |
Re: HTML in XSLT-Stylesheets
Ich würde folgendes versuchen:
XML-Code:
Laut
<xsl:template match="html-node">
<xsl:copy_of /> </xsl:template> ![]() |
Re: HTML in XSLT-Stylesheets
Hi,
funktioniert nicht, weil kein select-Attribut angegeben ist (ich nehme mal an der Unterstrich sollte eigentlich ein Bindestrich sein). Aber danke für den Link, ich schau mich mal dort um. Chris |
Re: HTML in XSLT-Stylesheets
Zitat:
XML-Code:
<xsl:template match="html-node">
<xsl:copy-of select="." /> </xsl:template> Zitat:
|
Re: HTML in XSLT-Stylesheets
Hi,
nein, funktioniert auch nicht. Ist aber auch nicht weiter verwunderlich, da der eingangs genannte Code von Mathias ja auch nicht funktioniert und der prinzipiell das Gleiche macht. Hat jemand irgendwelche anderen Vorschläge? Chris |
Re: HTML in XSLT-Stylesheets
ich nochmal:
Ich weiß ncht, was für HTML-Codes enthalten sind, aber wenn es sich nur um eine Handvoll (also zum Beispiel nur Textformatierung handelt), kannst du für jeden einzelnen eine Template definieren und dann in html-node einfach apply-templates benutzen. Wenn du sowieso eigene Templates benutzt, kannst du dann auch einfach eigene Tags statt HTML-Tags benutzen |
Re: HTML in XSLT-Stylesheets
Ich frage mich gerade, ob das überhaupt gehen wird, Chris. CDATA dient ja eigentlich dazu, Sonderzeichen, spezielle Zeichen oder eben HTML-Code darzustellen bzw. nutzen zu können, ohne dass es im restlichen XML-Code zu Problemen kommt. Mir ist so kein Weg bekannt, HTML-Code als solchen darzustellen. :gruebel:
|
Re: HTML in XSLT-Stylesheets
Hi,
naja, erstens wirkt apply-templates per se nicht auf CDATA (wie Mathias ja auch richtig erkannt hat). Das hat auch seine Richtigkeit. Und ich werde nicht auf Alternativ-Tags umsteigen. XSLT ist nicht der einzige Weg, wie auf diese Daten zugegriffen wird. Und in meiner Delphi-Anwendung muss CDATA ankommen und zwar HTML-Code. @Mathias: es gibt wohl einen Weg, wie ich eben festgestellt habe. disable-output-escpaing kann man als Attribut an das value-of-Element anhängen. Safari und Internet Explorer verstehen das auch. Nur der Firefox übergeht das einfach. In der Community gibt es wohl die Frage, ob das überhaupt so richtig ist und ob das überhaupt sein darf. :roll: Das steht wohl nicht in ihren offenen Standards drin, also wird erstmal rumgeheult. ;) Wenn es aber noch eine andere Möglichkeit geben sollte: immer her damit. :) Chris |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz