Geachte mede tweakers,
Ik ben momenteel bezig met een website, waarop verschillende producten te vinden zijn. Nu kunnen medewerkers nieuwe producten toe voegen door een product id op te geven op een pagina. Deze pagina benaderd dat een 'datafeed' die XML output geeft met product data. in de volgende vorm (versimpeld):
Dit werkt allemaal prima, maar zoals je ziet worden de gegevens van het product als attributen opgegeven. Er is al een stylesheet (XSL) gemaakt door een collega programmeur, maar deze is nu op vakantie en niet bereikbaar. En wat blijkt, het werkt niet. Hier de stylesheet:
Het probleem is het volgende, alle data wordt wel uit de attributen gehaald, maar de elementen worden niet aangemaakt. Ik krijg dus een grote lap text met alle data achter elkaar. Ook als ik ipv
<xsl:element name="{name()}"> zelf een naam invul wordt er geen element weergegeven.
Ik heb weinig ervaring met XSL(T) en XPath, heb all wel rond gegoogled en kwam een stylesheet tegen die verdacht veel op deze leek maar die werkte dus ook niet. Heb ook een verscheiden fora's door gelezen maar kon niet echt een oplossing vinden. Ook na het volgen van de tutorials op w3schools.com kwam ik er niet uit.
Iemand een suggestie?
Ik ben momenteel bezig met een website, waarop verschillende producten te vinden zijn. Nu kunnen medewerkers nieuwe producten toe voegen door een product id op te geven op een pagina. Deze pagina benaderd dat een 'datafeed' die XML output geeft met product data. in de volgende vorm (versimpeld):
XML:
1
2
3
| <products> <product prodid='blaat' name='blaat naam' desc='beschrijving' /> </products> |
Dit werkt allemaal prima, maar zoals je ziet worden de gegevens van het product als attributen opgegeven. Er is al een stylesheet (XSL) gemaakt door een collega programmeur, maar deze is nu op vakantie en niet bereikbaar. En wat blijkt, het werkt niet. Hier de stylesheet:
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| <?xml version='1.0' encoding='utf-8' ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="xml"/> <xsl:template match="/"> <products> <xsl:for-each select="/products/product"> <xsl:element name="{name()}"> <xsl:for-each select="@*"> <xsl:element name="{name()}"> <xsl:value-of select="."/> </xsl:element> </xsl:for-each> </xsl:element> </xsl:for-each> </customers> </xsl:template> </xsl:stylesheet> |
Het probleem is het volgende, alle data wordt wel uit de attributen gehaald, maar de elementen worden niet aangemaakt. Ik krijg dus een grote lap text met alle data achter elkaar. Ook als ik ipv
<xsl:element name="{name()}"> zelf een naam invul wordt er geen element weergegeven.
Ik heb weinig ervaring met XSL(T) en XPath, heb all wel rond gegoogled en kwam een stylesheet tegen die verdacht veel op deze leek maar die werkte dus ook niet. Heb ook een verscheiden fora's door gelezen maar kon niet echt een oplossing vinden. Ook na het volgen van de tutorials op w3schools.com kwam ik er niet uit.
Iemand een suggestie?
C2D E6600 - 2048MB Kingston - Sapphire HD2900XT - 200Gb Samsung - Asus P5B-E