Ik wil met behulp van een .xsl-file een grafische representatie maken van een xml-file, in een html-table.
Dat gaat allemaal best goed (het is niet zo moelijk), maar ik loop vast wanneer er meerder sub-elementen zijn.
Voorbeeld XML
Wat ik nu dus wil, is dat zowel feature1 als feature2 samengevoegd in één html-table-cell, eventueel met een enter (<br/>) ertussen.
Nu heb ik dit als XSL:
Ik krijg dan alleen feature1 te zien in de table (redelijk logisch).
Dus ik dacht; aja, ik moet zo'n for-each loopje doen:
Dan krijg ik echter helemaal niks te zien.
Ook de volgende varianten werken niet:
(Ook leeg)
Nu krijg ik drie keer feature1 te zien..
(precies het aantal Feature-elementen dat er is. Bij 5 elementen krijg ik 5x feature1 te zien.
Heb al diverse xml en xsl tutorials, manuals etc. gelezen maar kan het nergens vinden.
Heb zoekopdrachten gedaan met de keywords xml, xsl, join elements, combine elements.. maar kom er nog niet achter.
Heb het gevoel dat ik heel dichtbij ben.. maar goed.
Iemand die een duwtje in de juiste richting kan geven?
Dat gaat allemaal best goed (het is niet zo moelijk), maar ik loop vast wanneer er meerder sub-elementen zijn.
Voorbeeld XML
code:
1
2
3
4
5
6
7
8
9
10
11
| <Catalog> <Product> <Productid>Id1</Productid> <Name>Naam</Name> <Features> <Feature>feature 1</Feature> <Feature>feature 2</Feature> <Feature>feature 3</Feature> </Features> </Product> </Catalog> |
Wat ik nu dus wil, is dat zowel feature1 als feature2 samengevoegd in één html-table-cell, eventueel met een enter (<br/>) ertussen.
Nu heb ik dit als XSL:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| <xsl:template match="/"> <html> <body> <table> <xsl:for-each select="Catalog/Product"> <tr> <td><xsl:value-of select="Productid"/></td> <td><xsl:value-of select="Name"/></td> <td><xsl:value-of select="Features/Feature"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> |
Ik krijg dan alleen feature1 te zien in de table (redelijk logisch).
Dus ik dacht; aja, ik moet zo'n for-each loopje doen:
code:
1
| <xsl:for-each select="Features/Feature"><xsl:value-of select="Feature"/></xsl:for-each> |
Dan krijg ik echter helemaal niks te zien.
Ook de volgende varianten werken niet:
code:
1
| <xsl:for-each select="Features/Feature"><xsl:value-of select="Features/Feature"/><br/></xsl:for-each> |
(Ook leeg)
code:
1
| <xsl:for-each select="Features/Feature"><xsl:value-of select="../Feature"/></xsl:for-each> |
Nu krijg ik drie keer feature1 te zien..
Heb al diverse xml en xsl tutorials, manuals etc. gelezen maar kan het nergens vinden.
Heb zoekopdrachten gedaan met de keywords xml, xsl, join elements, combine elements.. maar kom er nog niet achter.
Heb het gevoel dat ik heel dichtbij ben.. maar goed.
Iemand die een duwtje in de juiste richting kan geven?
offtopic:
Ja, dit topic is het kleine broertje van \[PHP/SOAP/XML] Element toevoegen in SOAP-verkregen XML maar gezien dit een totaal ander iets betreft en ander subforum, toch maar een eigen topic
Ja, dit topic is het kleine broertje van \[PHP/SOAP/XML] Element toevoegen in SOAP-verkregen XML maar gezien dit een totaal ander iets betreft en ander subforum, toch maar een eigen topic