Toon posts:

[XSL] XML naar HTML

Pagina: 1
Acties:

Verwijderd

Topicstarter
Mensen 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.

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Begin dan eerst eens weer te geven wat voor XSL je al hebt geprobeerd te maken ;)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • RM-rf
  • Registratie: September 2000
  • Laatst online: 12:32

RM-rf

1 2 3 4 5 7 6 8 9

ik denk dat je moet kijken naar Xpath..

daarmee kun je op basis van een path-structuur (die weer te genereren is) bepaalde nodes uit een XML selecteren voor verdere verwerking:
http://w3schools.com/xpath/xpath_intro.asp

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

BtM909 schreef op dinsdag 20 februari 2007 @ 15:37:
Begin dan eerst eens weer te geven wat voor XSL je al hebt geprobeerd te maken ;)
Met XSL(T) kan je XML omzetten naar xHTML, m.i. ook de mooiste en beste oplossing, punt is alleen dat je dan xHTML krijgt, weet niet of dat de TS dit ook wilt?
Anders heeft XSL(T) niet veel nut voor de TS... ;)

  • Rickets
  • Registratie: Augustus 2001
  • Niet online

Rickets

Finger and a shift

GJ-tje schreef op woensdag 21 februari 2007 @ 08:18:
Met XSL(T) kan je XML omzetten naar xHTML, m.i. ook de mooiste en beste oplossing, punt is alleen dat je dan xHTML krijgt, weet niet of dat de TS dit ook wilt?
Anders heeft XSL(T) niet veel nut voor de TS... ;)
Laten we hem maar geen xhtml aanpraten; html 4.01 voldoet prima en dat kan je ook genereren met xsl.
code:
1
<xsl:output method="html"/>

If some cunt can fuck something up, that cunt will pick the worst possible time to fucking fuck it up, because that cunt’s a cunt.


Verwijderd

Topicstarter
Mensen, 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. Kan iemand mij helpen? 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>

Verwijderd

Topicstarter
Ben al verder gekomen met hierboven staande, nog niet geheel getest maar zal het plaatsen als ik het grondig getest heb. Ik ben nu bij een ander probleem beland. Hoe kun je een count of iets dergelijks uitvoeren in xsl??

Ik wil nl. een XSL maken om een XML bestand te genereren met per Item het aantal bestellingen uit de invoices.

Iemand enig idee?

Verwijderd

Om te " tellen" is er de count-functie beschikbaar in XSL(T).
Zoek 'm eens op, misschien kun je er iets mee.


PS, ik zie opeens ergens staan: '<title>Eindopdracht (2)</title>'
We zijn toch niet jouw huiswerk aan het maken he?

[ Voor 36% gewijzigd door Verwijderd op 27-02-2007 08:55 ]

Pagina: 1