Het kan aan mij liggen, maar ik vind XSLT een zeer bittere pil.
Ik tracht een xml file:
Door middel van een xsd schema te laten valideren, dat werkt helemaal prima en was ook niet zo heel moeilijk door het gebruik van <complexType> en aanverwante zaken.
Maar nu XSLT.
Ik heb voor een ogen dat ik een mooie html uitgepoept krijg met daarin 3 orders, met bijbehorende klantgegevens
zoiets:
Maar ik loop er echt helemaal op stuk, ik begrijp echt totaal niet hoe die referenties werken. Ik heb hier verschillende presentaties, voorbeelden en bestanden, maar begrijp de logica echt helemaal niet.
Kan iemand me hiermee een stukje op weg helpen, ik weet dat dit niet helemaal de 'way to go' is hier, maar ik ben in de war
Ik weet ongeveer hoe ik templates moet toepassen:
Maar hoe kan ik nu het klantid aan een orderid verbinden, binnen <order> is een klantid bekend, maar klant 1 heeft 2 orders, dit wil ik als 2 aparte order in mijn html laten weergeven.
Hoe ga ik om met deze attributen binnen een tamplate?
ALle hulp is meer dan welkom!
Edit: Ik merk al dat ik het geheel verkeerd aanpak, ik moet redeneren vanuit de order niet vanuit de klant
Ik tracht een xml file:
XML:
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
| <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="webshop.xslt"?> <webshop xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation='webshop.xsd' > <klanten> <klant klantid="klant0001"> <voornaam>Henk</voornaam> <achternaam>Vries</achternaam> <email>nono@gmail.com</email> <telefoon>0184411111</telefoon> <postadres> <straat>Laan</straat> <huisnummer>52</huisnummer> <postcode>1122AB</postcode> <plaats>Rectum</plaats> <land>Nederland</land> </postadres> </klant> <klant klantid="klant0002"> <voornaam>Pietje</voornaam> <achternaam>Bell</achternaam> <email>pietje.bell@gmail.com</email> <telefoon>0184411111</telefoon> <postadres> <straat>Anderestraat</straat> <huisnummer>152</huisnummer> <postcode>3326AB</postcode> <plaats>Dordrecht</plaats> <land>Nederland</land> </postadres> </klant> </klanten> <orders> <order orderid="order0001" klantid="klant0001"> <orderregels> <orderregel artikelid="artikel0001" aantal="2" /> <orderregel artikelid="artikel0002" aantal="3" /> </orderregels> </order> <order orderid="order0002" klantid="klant0001"> <orderregels> <orderregel artikelid="artikel0003" aantal="1" /> </orderregels> </order> <order orderid="order0003" klantid="klant0002"> <orderregels> <orderregel artikelid="artikel0003" aantal="1" /> <orderregel artikelid="artikel0001" aantal="2" /> <orderregel artikelid="artikel0002" aantal="3" /> </orderregels> </order> </orders> <artikelen> <artikel artikelid="artikel0001"> <titel>Prachtig Artikel</titel> <omschrijving>Prachtige dakbedekking</omschrijving> <prijs>€ 15,00</prijs> </artikel> <artikel artikelid="artikel0002"> <titel>Prima Artikel</titel> <omschrijving>Prima artikel om te gebruiken als wandvulling en isolatiemateriaal</omschrijving> <prijs>€ 20,00</prijs> </artikel> <artikel artikelid="artikel0003"> <titel>Absoluut Topartikel</titel> <omschrijving>De absolute top als het gaat om schoenzoolvulling</omschrijving> <prijs>€ 50,00</prijs> </artikel> </artikelen> </webshop> |
Door middel van een xsd schema te laten valideren, dat werkt helemaal prima en was ook niet zo heel moeilijk door het gebruik van <complexType> en aanverwante zaken.
Maar nu XSLT.
Ik heb voor een ogen dat ik een mooie html uitgepoept krijg met daarin 3 orders, met bijbehorende klantgegevens
zoiets:
code:
1
2
3
4
5
6
7
8
9
10
11
| Order: order0001 Klant: klant0001 N A //gewoon NAW gegevens W Artikelen: Naam: Prachtig Artikel Aantal: 2 Naam: Prima Artikel Aantal:3 |
Maar ik loop er echt helemaal op stuk, ik begrijp echt totaal niet hoe die referenties werken. Ik heb hier verschillende presentaties, voorbeelden en bestanden, maar begrijp de logica echt helemaal niet.
Kan iemand me hiermee een stukje op weg helpen, ik weet dat dit niet helemaal de 'way to go' is hier, maar ik ben in de war
Ik weet ongeveer hoe ik templates moet toepassen:
XSLT:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl='http://www.w3.org/1999/XSL/Transform' > <!-- root match --> <xsl:template match="/"> <xsl:apply-templates /> </xsl:template> <!-- klant template--> <xsl:template match="webshop/klanten/klant"> <h1>ORDERGEGEVENS</h1> <b>Naam: </b><xsl:apply-templates select="voornaam" /> <xsl:apply-templates select="achternaam" /> </xsl:template> <xsl:template match="voornaam"> <xsl:value-of select="." /> </xsl:template> <xsl:template match="achternaam"> <xsl:value-of select="." /><br /> </xsl:template> </xsl:stylesheet> |
Maar hoe kan ik nu het klantid aan een orderid verbinden, binnen <order> is een klantid bekend, maar klant 1 heeft 2 orders, dit wil ik als 2 aparte order in mijn html laten weergeven.
Hoe ga ik om met deze attributen binnen een tamplate?
ALle hulp is meer dan welkom!
Edit: Ik merk al dat ik het geheel verkeerd aanpak, ik moet redeneren vanuit de order niet vanuit de klant