een stuk wat ik binnen krijg:
misschien belangrijk hierbij: er kan voor elke language maar 1 description zijn, er kunnen voor elke language meerdere comforts zijn, ik weet vooraf niet welke languages er aanwezig zullen zijn, dit kan varieren. aan dit model kan niets gewijzigd worden, dit is wat ik binnen krijg
adhv een xslt zou ik tot een ander formaat moeten komen waarbij de descriptions naast de description tekst uit de input (wat hierboven staat dus) ook alle comforten (Value) voor dezelfde language binnen de description tag opneemt)
de xslt die ik geschreven heb:
hoe ik geredeneerd heb: ik geef de language mee naar een template , en daar ga ik alle comforts overlopen op basis van de meegegeven language de Value outputten. die value-of die onder param staat in de template werkt perfect, hij gaat effectief de waarde van $lang toevoegen aan de description, dit was puur als test bedoeld, om te zien of hij wel in de template terecht komt, echter, ik krijg nooit de value waarden van de comforts bij mijn descriptions. heeft volgens mij te maken met de match van de template (de rest van mijn xslt werkt perfect), maar ik heb geen ervaring genoeg met xslt om dit te kunnen oplossen, ik probeer maar wat, maar deze keer kom ik er niet,... iemand suggesties?
extra note: input tags hebben allemaal hoofdletters, output tags niet, daar kan ik ook niet van afwijken, ik moet een bepaald formaat afleveren waaraan ik me moet houden
Code:
<CoreExchange>
<Node>
....nog meer node specifieke gegevens ....
<Properties>
....nog meer node specifieke gegevens ....
<Descriptions>
<Description language="NL">tekst</Description>
</Descriptions>
....nog meer node specifieke gegevens ....
<Comforts>
<Comfort language="NL" >
<ComfortType>tekst</ComfortType>
<Value>tekst</Value></Comfort>
</Comforts>
....nog meer node specifieke gegevens ....
</Properties>
....nog meer node specifieke gegevens ....
</Node>
... nog meer nodes....
</CoreExchange>
misschien belangrijk hierbij: er kan voor elke language maar 1 description zijn, er kunnen voor elke language meerdere comforts zijn, ik weet vooraf niet welke languages er aanwezig zullen zijn, dit kan varieren. aan dit model kan niets gewijzigd worden, dit is wat ik binnen krijg
adhv een xslt zou ik tot een ander formaat moeten komen waarbij de descriptions naast de description tekst uit de input (wat hierboven staat dus) ook alle comforten (Value) voor dezelfde language binnen de description tag opneemt)
de xslt die ik geschreven heb:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
version="1.0"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:exslt="http://exslt.org/common"
xmlns:dyn="http://exslt.org/dynamic"
extension-element-prefixes="exslt dyn">
<xsl:output
method="xml"
version="1.0"
omit-xml-declaration="no"
encoding="UTF-8"
standalone="yes"
indent="yes"
media-type="text/xml"/>
<xsl:template match="/">
<xsl:element name="CoreExchange">
<xsl:for-each select="CoreExchange/Node">
<xsl:element name="Node">
<xsl:element name="properties">
<xsl:element name="descriptions">
<xsl:for-each select="Properties/Descriptions/Description">
<xsl:element name="description">
<xsl:attribute name="language">
<xsl:value-of select="@language" />
</xsl:attribute>
<xsl:value-of select="." />
<xsl:call-template name="getComforts">
<xsl:with-param name="lang"><xsl:value-of select="@language" /></xsl:with-param>
</xsl:call-template>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:template>
<xsl:template name="getComforts" match="Properties">
<xsl:param name="lang" />
<xsl:value-of select="$lang" />
<xsl:for-each select="Comforts/Comfort[@language=$lang]">
<xsl:value-of select="Value" />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
hoe ik geredeneerd heb: ik geef de language mee naar een template , en daar ga ik alle comforts overlopen op basis van de meegegeven language de Value outputten. die value-of die onder param staat in de template werkt perfect, hij gaat effectief de waarde van $lang toevoegen aan de description, dit was puur als test bedoeld, om te zien of hij wel in de template terecht komt, echter, ik krijg nooit de value waarden van de comforts bij mijn descriptions. heeft volgens mij te maken met de match van de template (de rest van mijn xslt werkt perfect), maar ik heb geen ervaring genoeg met xslt om dit te kunnen oplossen, ik probeer maar wat, maar deze keer kom ik er niet,... iemand suggesties?
extra note: input tags hebben allemaal hoofdletters, output tags niet, daar kan ik ook niet van afwijken, ik moet een bepaald formaat afleveren waaraan ik me moet houden
Laatst bewerkt: