Ik heb een applicatie waarbij php een formulier genereerd in XML, deze moet natuurlijk als HTML uitgepoept worden dus daar gebruik ik dan XSL voor.
Ik heb een volgende XML structuur:
Nou wil ik via 2 XSL includes beide elementen omzetten naar HTML. Omdat de XML nodes identiek zijn, zijn de 2 verschillende XSL bestanden ook gebasseerd op dezelfde structuur, namelijk:
BESTAND 1
BESTAND 2
Hoe kan ik er nu voor zorgen dat de beide XLS sheets op de juiste XML nodes
worden toegepast? Het unieke van de de repeaterroots is in principe het attribute
xslid van de parent... Maar die kan ik in het ge-include bestand niet bereiken via:
Ik ga nu pitten en kijken of ik nog een opleving krijg om dit op te lossen maar kom er nu niet meer
uit dus hulp is welkom!
Ik heb een volgende XML structuur:
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
| {...}
<form:formelement />
<forme:formelement type="rptcontainer" xslid="CustomerAgreementCollection" >
<rpt:repeaterroot>
<rpta:repeaterattributes>
</rpta:repeaterattributes>
<rpta:repeateritems>
</rpta:repeateritems>
</rpt:repeaterroot>
</forme:formelement>
<form:formelement />
{...}
<form:formelement />
<forme:formelement type="rptcontainer" xslid="CustomerPacketCollection" >
<rpt:repeaterroot>
<rpta:repeaterattributes>
</rpta:repeaterattributes>
<rpta:repeateritems>
</rpta:repeateritems>
</rpt:repeaterroot>
</forme:formelement>
<form:formelement />
{...} |
Nou wil ik via 2 XSL includes beide elementen omzetten naar HTML. Omdat de XML nodes identiek zijn, zijn de 2 verschillende XSL bestanden ook gebasseerd op dezelfde structuur, namelijk:
BESTAND 1
code:
1
2
3
4
5
6
7
8
9
10
| <xsl:template match="/rpt:repeaterroot" >
<xsl:apply-templates />
</xsl:template>
<xsl:template match="rpta:repeaterattributes" >
</xsl:template>
<xsl:template match="rpta:repeateritems" >
*** AGREEMENT HTML ***
</xsl:template> |
BESTAND 2
code:
1
2
3
4
5
6
7
8
9
10
| <xsl:template match="/rpt:repeaterroot" >
<xsl:apply-templates />
</xsl:template>
<xsl:template match="rpta:repeaterattributes" >
</xsl:template>
<xsl:template match="rpta:repeateritems" >
*** PACKET HTML ***
</xsl:template> |
Hoe kan ik er nu voor zorgen dat de beide XLS sheets op de juiste XML nodes
worden toegepast? Het unieke van de de repeaterroots is in principe het attribute
xslid van de parent... Maar die kan ik in het ge-include bestand niet bereiken via:
code:
1
| ../@xslid |
Ik ga nu pitten en kijken of ik nog een opleving krijg om dit op te lossen maar kom er nu niet meer
uit dus hulp is welkom!