Ik heb in XSLT een query gebouwd die mij een te groot aantal resultaten teruggeeft. Een distinct op een query is blijkbaar nog niet mogelijk en ik ben gebonden aan XSLT 1.0. Met behulp van een for-each kan ik gesorteerd op achternaam door een lijst lopen. Ook kan ik in de for-each lus de huidige en vorige positie bepalen
Echter de naam van de vorige employee krijg ik niet of onjuist te zien. Bij element 4 zie ik bij previous name dus niet de naam te zien die ik bij element 3 als currentname zie. Daardoor is het niet mogelijk om de query te ontdubbelen. Hoe kan ik dit oplossen?
XSLT:
1
2
3
4
5
6
7
8
9
10
11
12
| <xsl:for-each select="$resultEmployees//nds/output/instance"> <xsl:sort select="./attr[@attr-name='Surname']"/> <xsl:variable name="varPreviousPosition"> <value><xsl:value-of select="position()-1"/></value> </xsl:variable> <xsl:message>Current name: <xsl:value-of select="./attr[@attr-name='Surname']/value"/></xsl:message> <xsl:if test="position() > 1"> <xsl:message>Previous name = <xsl:value-of select="../instance[$varPreviousPosition]/att-[@attr-name='Surname']/value"/> </xsl:message> </xsl:if> </xsl:for-each> |
Echter de naam van de vorige employee krijg ik niet of onjuist te zien. Bij element 4 zie ik bij previous name dus niet de naam te zien die ik bij element 3 als currentname zie. Daardoor is het niet mogelijk om de query te ontdubbelen. Hoe kan ik dit oplossen?
[ Voor 15% gewijzigd door TweakersOnly op 20-07-2005 11:39 ]