Toon posts:

[XML/XSL] style koppelen aan elementen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoe kan je gebruikmakend van XSL een style koppelen aan een element. Heb de volgende xml opbouw:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?xml version="1.0" ?>

<?xml-stylesheet type="text/xsl" href="klantenbestand.xsl"?>

<bestelling xmlns:HTML="http://www.w3.org/Profiles/XHTML-transitional">

<klantenbestand>
    <klant klantid="1">
        <naam>ikke</naam>
        <adres>dorpstraat 1</adres>
        <postcode>1111 AA</postcode>
        <woonplaats>Amsterdam</woonplaats>
        <telefoonnummer>0111-222222</telefoonnummer>
        <emailadres>ikke@hotmail.com</emailadres>
    </klant>
    <klant klantid="2">
        <naam>jij</naam>
        <adres>Karton Doos 8</adres>
        <postcode>2222 JH</postcode>
        <woonplaats>Amsterdam</woonplaats>
        <telefoonnummer>0132-321325</telefoonnummer>
        <emailadres>jij@karton.doos</emailadres>
    </klant>

    
</klantenbestand>

</bestelling>

Daarnaast heb ik de volgende XSL:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?xml version="1.0" ?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

   <xsl:template match="/">

   <html>
   <head>
   <title>XML in combinatie met XSL</title>
   </head>
   
   <body>

<table>
   <xsl:for-each select="bestelling/klantenbestand/klant">   
     <tr><td><xsl:value-of select="@klantid" /> </td><td><xsl:value-of select="naam" /></td></tr>
     <tr><td></td><td><xsl:value-of select="adres" /></td></tr>
     <tr><td></td><td><xsl:value-of select="postcode" /> <xsl:value-of select="woonplaats" /></td></tr>
     <tr><td></td><td><xsl:value-of select="telefoonnumer" /></td></tr>
   </xsl:for-each>
</table>

    </body>
    </html>
</xsl:template>
   
</xsl:stylesheet>


Ik kan verder nergens wat vinden om nu bijvoorbeeld het element "naam" dik en rood af te drukken via XSL (Kan opzich wel met <font>, maar wil dat vermijden)

Wie kan een tipje oplichten van die sluier???

Verwijderd

XSL bevat naast XSLT ook nog FO wat staat voor Formatting Objects. Dit is volgens mij gelijk aan de stylesheets die je van HTML kent. Misschien dat je hier even naar kunt kijken.

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
XSLT is een taal voor het transformeren van de ene XML-vorm naar de andere, in dit geval naar HTML. Je moet dus gewoon stijlen toepassen zoals je het normaal doet met HTML, dus d.m.v. CSS.
XSL bevat naast XSLT ook nog FO wat staat voor Formatting Objects. Dit is volgens mij gelijk aan de stylesheets die je van HTML kent. Misschien dat je hier even naar kunt kijken.
XSL:FO is een generieke stijl-taal die niet alleen geschikt is voor het web, maar ook voor bijvoorbeeld de lay-out van complete boeken. Het wordt overigens momenteel nog door geen enkele browser ondersteunt zo ver ik weet. Het is dus niet erg goed geschikt in dit geval.

Verwijderd

Topicstarter
Bedankt voor reply... in mijn geval is het idd niet interessant om fo te gebruiken ;)

Dan moet het geheel maar via stylesheets!

  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
code:
1
<td><span style="color:red;font-weight:bold;"><xsl:value-of select="naam" /></span></td>

Wat was het probleem?

edit:
ik zie dat je for-each eigenlijk niet helemaal goed gebruikt, ga eens op zoek naar wat postings van mbravenboer over dit onderwerp..

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
brammetje schreef op 02 oktober 2002 @ 17:20:
code:
1
<td><span style="color:red;font-weight:bold;">...</span></td>

Wat was het probleem?
Het is beter om class="..." te gebruiken en de stijl in een apart css bestand te defineren imo.
edit: ik zie dat je for-each eigenlijk niet helemaal goed gebruikt, ga eens op zoek naar wat postings van mbravenboer over dit onderwerp..
op zich gebruikt ie de for-each wel goed, alleen is het beter om templates te gebruiken :)

  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
marcusk schreef op 02 oktober 2002 @ 17:31:
Het is beter om class="..." te gebruiken en de stijl in een apart css bestand te defineren imo.
Tja, dat kan ook, maar voor een test (toch??) als deze maakt dat allemaal niet zoveel uit, ik neem aan dat iemand die met xml/xsl aan de gang gaat dit ook wel gaat snappen.
op zich gebruikt ie de for-each wel goed, alleen is het beter om templates te gebruiken :)
Gewoon met templates werken, for-each heb je echt maar heel weinig nodig, hier sowieso niet..

Als oefening zou je voor naam een dergelijke template kunnen maken:
code:
1
2
3
4
5
<xsl:template match="naam">
    <span class="jeRodeEnBoldeClass"> 
        <xsl:value-of select="text()" />
    </span>
</xsl:template>

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
brammetje schreef op 02 oktober 2002 @ 19:49:
Tja, dat kan ook, maar voor een test (toch??) als deze maakt dat allemaal niet zoveel uit, ik neem aan dat iemand die met xml/xsl aan de gang gaat dit ook wel gaat snappen.
true :)
Gewoon met templates werken, for-each heb je echt maar heel weinig nodig, hier sowieso niet..
Helemaal mee eens, ik wilde alleen duidelijk maken dat hij geen syntax-fout oid had.
Pagina: 1