Ik ben een xml document in een ander xml document aan het omzetten met xslt en loop daarbij tegen het volgende probleem aan
In de output moeten <body> tags komen met daarin html-tags. Deze html tags moeten weer omsloten zijn door <![CDATA[ ]]>. Voorbeeld:
Het punt is echter dat er ook nog xslt-code tussen moet komen te staan. Dit is dus niet mogelijk:
(het is een beetje onzinnig om dit te doen, maar het gaat om het idee. Probleem is dus dat <xsl:value etc.. dan ook wordt geoutput ipv uitgevoerd.
Oplossing is dan om dit te doen:
<xsl:output cdata-section-elements="body" />
Probleem daarvan is weer dat ik het niet voor elkaar krijg om tags er tussen te zetten.
Dit werkt opzich:
Maar daar red ik het ook niet mee, omdat ik dan (o.a.) dit niet meer kan doen:
Heb ook geprobeerd om alles te bufferen in een variabele, maar dan gaan de tags (gek genoeg) verloren en krijg ik alleen de tekst terug.
Afijn ... ik heb dus al een hoop geprobeerd, maar krijg het niet voor elkaar.
Waar het dus nogmaals om gaat:
Hoe krijg ik met xslt in m'n output <![CDATA[ ]]?> op zo'n manier dat ik er tussen nog html tags kan zetten (met < en > en dus niet met <) en er nog xslt-code tussen kan zetten.
In de output moeten <body> tags komen met daarin html-tags. Deze html tags moeten weer omsloten zijn door <![CDATA[ ]]>. Voorbeeld:
code:
1
| <body><![CDATA[ <p>this is a paragraph</p>]]></body> |
Het punt is echter dat er ook nog xslt-code tussen moet komen te staan. Dit is dus niet mogelijk:
XSLT:
1
| <body><![CDATA[ <p><xsl:value-of select="'this is a paragraph'"/></p>]]></body> |
(het is een beetje onzinnig om dit te doen, maar het gaat om het idee. Probleem is dus dat <xsl:value etc.. dan ook wordt geoutput ipv uitgevoerd.
Oplossing is dan om dit te doen:
<xsl:output cdata-section-elements="body" />
Probleem daarvan is weer dat ik het niet voor elkaar krijg om tags er tussen te zetten.
Dit werkt opzich:
XSLT:
1
| <body><p><xsl:value-of select="'this is a paragraph'"/></p></body> |
Maar daar red ik het ook niet mee, omdat ik dan (o.a.) dit niet meer kan doen:
XSLT:
1
2
3
4
5
6
7
8
| <body> <p> <xsl:attribute name="style"> <xsl:value-of select="'color:red;'"/> </xsl:attribute> <xsl:value-of select="'this is a paragraph'"/> </p> </body> |
Heb ook geprobeerd om alles te bufferen in een variabele, maar dan gaan de tags (gek genoeg) verloren en krijg ik alleen de tekst terug.
Afijn ... ik heb dus al een hoop geprobeerd, maar krijg het niet voor elkaar.
Waar het dus nogmaals om gaat:
Hoe krijg ik met xslt in m'n output <![CDATA[ ]]?> op zo'n manier dat ik er tussen nog html tags kan zetten (met < en > en dus niet met <) en er nog xslt-code tussen kan zetten.