[xml/xslt]Data uit xml afdrukken!

Pagina: 1
Acties:

  • Spooksel
  • Registratie: Oktober 2000
  • Laatst online: 22:31
Als ik de volgende dingen heb in een file: test.xml
code:
1
2
3
4
5
6
7
<?xml version="1.0" encoding="UTF-8"?>
<Personen>
    <persoon>
        <naam>Spooksel</naam>
        <titel>xml n00b</titel>
    </persoon>
</Personen>

Hoe kan ik er dan in vredesnaam voor zorgen dat de naam en titel afgedrukt kunnen worden in een html pagina?

Kijk ik nou gewoon in de verkeerde manuals ofzo dat ik het niet kan vinden?

Bevalt mijn schrijfsel je niet? www.korrelatie.nl


  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Op maandag 25 maart 2002 16:32 schreef Spooksel het volgende:
Kijk ik nou gewoon in de verkeerde manuals ofzo dat ik het niet kan vinden?
Yep... http://www.xfront.org/ en talloze posts op GoT door onder andere mbravenboer should help.

Rustacean


Verwijderd

Zoek maar eens op google naar XSL en of stylesheets voor XML.
Je kunt natuurlijk ook met een SS taal de XML inlezen en dat in een bepaalde vorm omzetten in HTML.

  • doubleduh
  • Registratie: April 2000
  • Niet online
XML:
code:
1
<?xml-stylesheet type='text/xsl' href='iets.xsl'?>

XSL:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <html>
    <body>
      <xsl:for-each select="personen/persoon">
        <xsl:value-of select="naam"/>
        <xsl:value-of select="titel"/>
      </xsl:for-each>
    </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

laat ik nou net vorige week zoiets gemaakt hebben voor school... :)

je kan het nog mooier maken met een table en br's enzo ;)

Verwijderd

wat jij doet is niet zo'n mooie oplossing 'doubleduh', je kan beter templates gebruiken. Let wel op 'spooksel' dat het voorbeeldje van doubleduh clientside geparsed wordt.

  • Spooksel
  • Registratie: Oktober 2000
  • Laatst online: 22:31
zelf heb ik net dit ff gemaakt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
   <xsl:template match="personen">
    <html>
       <head>
       </head>
       <title>Test</title>
       <body bgcolor="white">
       <xsl:for-each select="persoon">
        <xsl:value-of select="naam"/>
        <xsl:value-of select="titel"/>
       </xsl:for-each>
       </body>
    </html>
   </xsl:template>
</xsl:stylesheet>

lijkt op het eerder geplaatste stukje echte de for-each zit anders!

hoe kan ik dit nou in mijn browser bekijken dan?

Bevalt mijn schrijfsel je niet? www.korrelatie.nl


  • Spooksel
  • Registratie: Oktober 2000
  • Laatst online: 22:31
Op maandag 25 maart 2002 16:40 schreef doubleduh het volgende:
XML:
code:
1
<?xml-stylesheet type='text/xsl' href='iets.xsl'?>

je kan het nog mooier maken met een table en br's enzo ;)
waar moet dit eigenlijk neergezet worden? in de xml pagina of in de .(x)html pagina???

Bevalt mijn schrijfsel je niet? www.korrelatie.nl


  • doubleduh
  • Registratie: April 2000
  • Niet online
in de xml file. dat is een link naar de xsl file zodat ie weet hoe die het moet renderen.

in je browser kan je dan gewoon de xml file opstarten.

  • Spooksel
  • Registratie: Oktober 2000
  • Laatst online: 22:31
das al beter... hij drukt de source van de xml file nu niet meer af...

sterker nog, hij drukt helemaal niks af :(
wat is dan mis met het stukje xml?

Bevalt mijn schrijfsel je niet? www.korrelatie.nl


  • doubleduh
  • Registratie: April 2000
  • Niet online
je hebt:
code:
1
<xsl:for-each select="persoon">

dat moet zijn:
code:
1
<xsl:for-each select="personen/persoon">

:)

  • whitehouse
  • Registratie: Maart 2000
  • Laatst online: 25-08 22:31
kun je geen verwijzing aan te maken dat het "pad" standaard personen zal zijn ?
hierdoor hoef je in de code niet steeds /personen/persoon te gebruiken...scheelt weer code 8-)

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Op maandag 25 maart 2002 19:43 schreef doubleduh het volgende:
je hebt:
...
dat moet zijn:
...
nee, dat hoeft niet, omdat je al in de personen-template zit. echter, "personen" moet "/personen" zijn.

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
zo is mooier trouwens:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="UTF-8"?>
<!-- fo gebruik je niet -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:template match="/personen">
    <html>
    <head>
      <title>Test</title>
    </head>
    <body>
      <xsl:apply-templates select="persoon"/>
    </body>
    </html>
  </xsl:template>

  <xsl:template match="persoon">
    <xsl:value-of select="naam"/>
    <xsl:value-of select="titel"/><br/>
  </xsl:template>

</xsl:stylesheet>

  • Spooksel
  • Registratie: Oktober 2000
  • Laatst online: 22:31
Ik zit weer verder te klooien hier, ik heb dus nu die xml file open in de browser maar er wordt niks uit de file afgedrukt, dit is nu mijn xsl file:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="UTF-8"?>
<!-- fo gebruik je niet -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/personen">
    <html>
    <head>
      <title>Test</title>
    </head>
    <body>
      <xsl:apply-templates select="persoon"/>
    </body>
    </html>
  </xsl:template>

  <xsl:template match="persoon">
    <xsl:value-of select="naam"/> is een 
    <xsl:value-of select="titel"/><br/>
  </xsl:template>

</xsl:stylesheet>

De woordjes IS en EEN worden wel afgedrukt maar de naam en titel niet!!!

Bevalt mijn schrijfsel je niet? www.korrelatie.nl


  • Spooksel
  • Registratie: Oktober 2000
  • Laatst online: 22:31
iemand?

Bevalt mijn schrijfsel je niet? www.korrelatie.nl


  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Bij mij werkt ie gewoon. Gebruik je wel IE (of Mozilla/NS) versie 6?

  • Spooksel
  • Registratie: Oktober 2000
  • Laatst online: 22:31
hmm... ik heb nu ook versie 6 maar draaien :)
bij 5 deed ie het dus niet!

Bevalt mijn schrijfsel je niet? www.korrelatie.nl


  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 22:39
XSLT is eigenlijk niet eens hiervoor nodig, een CSS bestand zou volstaan.

Kijk eens op www.w3schools.com/xml

  • Spooksel
  • Registratie: Oktober 2000
  • Laatst online: 22:31
Op woensdag 27 maart 2002 14:49 schreef ddc het volgende:
XSLT is eigenlijk niet eens hiervoor nodig, een CSS bestand zou volstaan.

Kijk eens op www.w3schools.com/xml
ja kan, ik heb het ff bekeken maar ik vind xsl interresanter.

Bevalt mijn schrijfsel je niet? www.korrelatie.nl


  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="UTF-8"?>
<!-- fo gebruik je niet -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/personen">
    <html>
    <head>
      <title>Test</title>
    </head>
    <body>
      <xsl:apply-templates/>
    </body>
    </html>
  </xsl:template>

  <xsl:template match="persoon">
    <xsl:value-of select="naam"/> is een 
    <xsl:value-of select="titel"/><br/>
  </xsl:template>

</xsl:stylesheet>

Hmmz, dit zou gewoon goed moeten werken. Het enige wat ik verander heb ik <xsl:apply-templates/> ipv <xsl:apply-templates select="persoon"/>. Ook met zou het moeten werken trouwens.. Maar ik denk dat het bijna nooit voor zal komen dat je maar 1 bepaald template in je body wilt toepassen.

edit: even getest en met IE 6 werkt het perfect (zoals marcusk al zei.)

  • Spooksel
  • Registratie: Oktober 2000
  • Laatst online: 22:31
ik heb heb dus 4 replies geleden ook al aan de gang :) lag idd aan mijn browser... was 5.00

Bevalt mijn schrijfsel je niet? www.korrelatie.nl


  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
Op woensdag 27 maart 2002 16:24 schreef Spooksel het volgende:
ik heb heb dus 4 replies geleden ook al aan de gang :) lag idd aan mijn browser... was 5.00
ja, je kan ook gewoon zeggen dat ik dom ben :'(

Naja, nog een goede tip voor je dan:

http://www.xfront.com/xsl <- die tutorial legt het helder, snel en correct uit..

En als je verder gaat met xsl, vermijd for-each zoveel mogelijk!
Pagina: 1