Toon posts:

[xsl]Html data in XML niet juist weergegeven met XSL

Pagina: 1
Acties:

Verwijderd

Topicstarter
In een XML file heb ik data staan, waarin ook HTML tags voorkomen.
Als ik de data met een xsl stylesheet op het scherm laat weergeven worden de HTML tags als tekst weergegeven, en dus niet beschouwd als HTML. Gevolg is dat de html tags gewoon op het beeldscherm worden weergegeven.
Mijn vraag is of er een functie beschikbaar is voor xsl waarmee je kunt aangeven dat data als html beschouwd moet worden en niet als tekst?
Ik heb het al met deze toevoeging geprobeerd, maar dat haalde niets uit:
<xsl:output method="html"/>

  • nospam
  • Registratie: Januari 2000
  • Laatst online: 24-08 19:08
Dat ligt eraan. Hoe zijn de HTML tags opgenomen? Als een stuk X(HT)ML (<html>) of ge-escaped (dus zoiets: <html>). In het laatste geval kan je er eigenlijk (met je XSLT stylesheet) niet veel aan doen, in het eerste geval kan je gebruik maken van de speciale XSLT copy tag (meer daarover op w3.org).

Verwijderd

Topicstarter
De tags zijn als html in de xml opgenomen, bijvoorbeeld <data><b>hallo</b></data>.
Ik wil hallo dus vet weergeven op het scherm en niet zo: <b>hallo</b>.
De copy tag heb ik geprobeerd. In plaats van 'xsl:value-of select = "data" ' heb ik ' xsl:copy-of select = "data" ' gebruikt, maar het effect was nog steeds hetzelfde.

Verwijderd

ik denk niet dat dit helpt maar verander <b> is in <strong> of nog beter doe het door middel van een stylesheet en maak dan een style aan voor de tag <data>.

Verwijderd

Topicstarter
Nee, dat is geen oplossing. Er kunnen bijvoorbeeld ook <br> tags in de data voorkomen. Ik zoek een functie die voorkomt dat de data in text wordt omgezet, maar als html code behandeld wordt door de browser.

Verwijderd

Dat zal je dan in je xsl bestand moeten doen zoiets als dit:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" 
          xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="root">
    <html>
      <xsl:apply-templates/>
    </html>
  </xsl:template>
  <xsl:template match="data">
    <strong>
      <xsl:apply-templates/>
    </strong>
  </xsl:template>
</xsl:stylesheet>

Iets in die richting iig.

[ Voor 20% gewijzigd door Verwijderd op 17-12-2002 10:13 . Reden: typo ]


Verwijderd

Topicstarter
Ik heb de oplossing gevonden:
<xsl:value-of select="Data" disable-output-escaping="yes"/>
Dit voorkomt escaping, dus html tags blijven intact.

  • akakiwi
  • Registratie: September 2000
  • Laatst online: 20-03 11:13

akakiwi

I believe in the ruling class.

Even een vraagje.
Waarom verwerk je HTML tags in je XML wanneer je de opmaak toch doet met een XSL?:?

Ik zou de XLM alleen als carrier houden, en de XSL voor de opmaak gebruiken. Daar is het ook voor bedoeld.

| Life is a game (and games are fun) | homepage |

Pagina: 1