Mensen ik ben aan het prutsen met xml, maar loop op een gegeven moment vast, misschien dat iemand mij kan helpen.
Ik heb de volgende xml- code:
Ik wil aan de hand van deze code een html pagina creëren. Ik weet dat ik eerst een xsl moet maken, maar ik heb het volgende probleem. <item>63-1010</item> uit <lines> staat gelijk aan <number>63-1010></number> uit <items>. Nu wil ik een html pagina creëren waarin de <description> bij de <item> wordt geplaatst.
Dus:
bij elke line id uit lines moet de description uit items bijgezocht worden. Kan iemand mij hiermee helpen? Ik heb ook op de site van W3schools gekeken, daar hebben ze het over een key-function, maar ik kom er gewoon niet uit.
En de volgende XSL:
Ik ben aan het stoeien geweest met xsl die hieronder te zien is. Ik heb dus een tabel met 4 kolommen(nbr, item, description, total). In dit geval wordt de nbr en total wel netjes onder elkaar gezet, maar item en description worden niet weergegeven bij de bijbehorende nbr. Ik heb een vermoeden dan het "<xsl:for-each select="orders/invoices/invoice/invoicedata" order-by="nbr">"hiermee te maken heeft, maar de oplossing kan ik niet bedenken.
Ik heb de volgende xml- code:
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
| <orders> <invoices> <invoice> <invoicedata> <nbr>2001-1965</nbr> <date>2005-05-26</date> <totalexcl>7784.55</totalexcl> <tva>1634.76</tva> <total>9419.31</total> <duedate>January 11th. 2002</duedate> </invoicedata> <customerdata> <custid>ALFKI</custid> <company>Alfreds Futterkiste</company> <contact>Maria Anders</contact> <pcode>12209</pcode> <city>Berlin</city> <country>Germany</country> <address>Obere Str. 57</address> </customerdata> <lines> <line id="1"> <item>63-1010</item> <unit>EACH</unit> <priceexcl>7.85</priceexcl> <qty>10</qty> <subtotal>78.50</subtotal> </line> <line id="2"> <item>63-1015</item> <unit>EACH</unit> <priceexcl>39.69</priceexcl> <qty>30</qty> <subtotal>1190.70</subtotal> </line> <line id="3"> <item>63-2212</item> <unit>ROLL</unit> <priceexcl>1.53</priceexcl> <qty>50</qty> <subtotal>76.50</subtotal> </line> </lines> </invoice> </invoices> <catalog> <items> <item> <number>63-1010></number> <description>BULLETIN BOARD. 18" X 24"</description> </item> <item> <number>63-1015></number> <description>CHAIRMAT. 46" X 60"</description> </item> <item> <number>63-2212></number> <description>TAPE. MASKING. 2"</description> </item> </items> </catalog> </orders> |
Ik wil aan de hand van deze code een html pagina creëren. Ik weet dat ik eerst een xsl moet maken, maar ik heb het volgende probleem. <item>63-1010</item> uit <lines> staat gelijk aan <number>63-1010></number> uit <items>. Nu wil ik een html pagina creëren waarin de <description> bij de <item> wordt geplaatst.
Dus:
bij elke line id uit lines moet de description uit items bijgezocht worden. Kan iemand mij hiermee helpen? Ik heb ook op de site van W3schools gekeken, daar hebben ze het over een key-function, maar ik kom er gewoon niet uit.
En de volgende XSL:
Ik ben aan het stoeien geweest met xsl die hieronder te zien is. Ik heb dus een tabel met 4 kolommen(nbr, item, description, total). In dit geval wordt de nbr en total wel netjes onder elkaar gezet, maar item en description worden niet weergegeven bij de bijbehorende nbr. Ik heb een vermoeden dan het "<xsl:for-each select="orders/invoices/invoice/invoicedata" order-by="nbr">"hiermee te maken heeft, maar de oplossing kan ik niet bedenken.
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
| <?xml version='1.0'?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <html> <head> <title>Eindopdracht (2)</title> <basefont face="Helvetica,Arial" color="#FFCC00" size="+1"/> </head> <body bgcolor="#000066"> <center> <font size="+3"><b>Invoices:</b></font> <table border="1"> <tr> <th>nbr</th> <th>item</th> <th>description</th> <th>total</th> </tr> <xsl:for-each select="orders/invoices/invoice/invoicedata" order-by="nbr"> <tr> <td align="center"> <xsl:value-of select="nbr"/> </td> <td align="center"> <xsl:value-of select="item"/> </td> <td align="center"> <xsl:value-of select="description"/> </td> <td align="center"> <xsl:value-of select="total"/> </td> </tr> </xsl:for-each> </table> </center> </body> </html> </xsl:template> </xsl:stylesheet> |