Ik probeer binnen een XSLT-template de eerste unieke (op basis van een aantal eigenschappen) child te selecteren om vervolgens daarmee een template in te gaan. Het probleem is echter dat ik vanuit de preceding-sibling niet weet hoe ik de waarde van de huidige child op moet vragen. Voorbeeldcode (die niet doet wat ik wil):
'current()' wordt in dit geval voor zover ik na kan gaan herleidt naar 'parent' ipv huidige 'child'. Misschien correct gedrag, maar niet wat ik probeer te bereiken. Ik wil kijken of de huidige 'child' de eerste unieke (@att1 en @att2) child is.
Ik gebruik de parser die standaard bij PHP wordt geleverd, dus XPath 1.0 only volgens mij.
Iemand die me een handje kan helpen?
Edit; Eigenlijk is XPath misschien meer op zijn plaats als XSLT.
XML:
1
2
3
4
5
6
7
8
9
10
11
| <xsl:template match="parent"> <xsl:apply-templates select=" child[ not( preceding-sibling::child[ (@att1/text() = current()/@att1/text()) and (@att2/text() = current()/@att2/text()) ) ] " /> </xsl:template> |
'current()' wordt in dit geval voor zover ik na kan gaan herleidt naar 'parent' ipv huidige 'child'. Misschien correct gedrag, maar niet wat ik probeer te bereiken. Ik wil kijken of de huidige 'child' de eerste unieke (@att1 en @att2) child is.
Ik gebruik de parser die standaard bij PHP wordt geleverd, dus XPath 1.0 only volgens mij.
Iemand die me een handje kan helpen?
Edit; Eigenlijk is XPath misschien meer op zijn plaats als XSLT.
[ Voor 5% gewijzigd door r0bert op 13-04-2010 20:03 ]