AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

HTML in XSLT-Stylesheets

Ein Thema von CalganX · begonnen am 17. Mai 2007 · letzter Beitrag vom 17. Mai 2007
Antwort Antwort
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

HTML in XSLT-Stylesheets

  Alt 17. Mai 2007, 16:25
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:
<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>
Da macht sich aber keine Veränderung sichtbar. Auch das Einbinden des XHTML-Namespaces hat keinen Erfolg gebracht:
XML-Code:
<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>
Gibt es noch andere Lösungswege oder hab ich irgendwas falsch gemacht?

Chris
  Mit Zitat antworten Zitat
Benutzerbild von Tiuri
Tiuri

Registriert seit: 22. Sep 2006
Ort: Celle
38 Beiträge
 
Delphi 2005 Personal
 
#2

Re: HTML in XSLT-Stylesheets

  Alt 17. Mai 2007, 16:39
Ich würde folgendes versuchen:
XML-Code:
<xsl:template match="html-node">
  <xsl:copy_of />
</xsl:template>
Laut SelfHTML müsste das funktionieren (habe es nicht ausprobiert)
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: HTML in XSLT-Stylesheets

  Alt 17. Mai 2007, 16:44
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
  Mit Zitat antworten Zitat
Benutzerbild von Tiuri
Tiuri

Registriert seit: 22. Sep 2006
Ort: Celle
38 Beiträge
 
Delphi 2005 Personal
 
#4

Re: HTML in XSLT-Stylesheets

  Alt 17. Mai 2007, 16:49
Zitat von CalganX:
funktioniert nicht, weil kein select-Attribut angegeben ist
hast recht, ich verwechsle obligatorisch und optional immer. Dann müsste es so funktionieren:
XML-Code:
<xsl:template match="html-node">
  <xsl:copy-of select="." />
</xsl:template>
Zitat von CalganX:
(ich nehme mal an der Unterstrich sollte eigentlich ein Bindestrich sein).
Hab mich verlesen :-D
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: HTML in XSLT-Stylesheets

  Alt 17. Mai 2007, 16:56
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
  Mit Zitat antworten Zitat
Benutzerbild von Tiuri
Tiuri

Registriert seit: 22. Sep 2006
Ort: Celle
38 Beiträge
 
Delphi 2005 Personal
 
#6

Re: HTML in XSLT-Stylesheets

  Alt 17. Mai 2007, 19:36
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
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#7

Re: HTML in XSLT-Stylesheets

  Alt 17. Mai 2007, 19:43
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.
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: HTML in XSLT-Stylesheets

  Alt 17. Mai 2007, 19:59
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. 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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz