[XSLT/XPATH] last() binnen test probleem

Pagina: 1
Acties:

  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 20-08 21:59

BierPul

2 koffie graag

Topicstarter
Ik heb een XML bestand waarin een aantal namen zijn gedeinieerd op basis van type.

De types zijn C, W, S

Ik heb een javascriptje wat de inhoud van mn selectbox doet wijzigen bij aanklikken van een van deze categorien .

Om die select box te kunnen vullen heb ik eerst de inhoud van die XML nodig en probeer die dus met XSLT en Xpath naar boven te halen.

code:
1
2
3
4
5
     <xsl:for-each select="beneficiary/beneficiaryTypes/beneficiarytype">
            <xsl:if test="sort='W'">
                <xsl:value-of select="id"/>:'<xsl:value-of select="description"/>'<xsl:if test="position() &lt; last()">,</xsl:if>
            </xsl:if>
      </xsl:for-each>


Voor mn JS moet elke entry met een comma geindigd worden behalve de laatste.

Ik probeer dus met position() en last() dit af te vangen echter zijn er meer nodes dan die door mn test heen komen :(

Ik krijg dus alleen toevallig als ik de laatste node uit de hele lijst pak geen comma

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Positie van deze node :20
Laatste node: 26
de output die ik nodig heb voor mn JS 20:'Needy Group 19'
Ik wil alleen een comma als het niet de laatste node is : ,

Positie van deze node :23
Laatste node: 26
de output die ik nodig heb voor mn JS 23:'Good Cause 22'
Ik wil alleen een comma als het niet de laatste node is : ,

Positie van deze node :26
Laatste node: 26
de output die ik nodig heb voor mn JS 26:'Needy Club 25'
Ik wil alleen een comma als het niet de laatste node is :


Is er een mannier op dit op te lossen :?

Ja man


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Waarom doe je eigenlijk niet ipv

code:
1
2
<xsl:for-each select="beneficiary/beneficiaryTypes/beneficiarytype">
            <xsl:if test="sort='W'">

dit:
code:
1
<xsl:for-each select="beneficiary/beneficiaryTypes/beneficiarytype[sort='W']">

:?

nog afgezien van het feit dat je beter een xsl:template kunt gebruiken, maar goed

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
zelf doe ik altijd een position() != last()

Verwijderd

code:
1
<xsl:if test="position() != last()">,</xsl:if>


:?

Dus... als de huidige positie niet de laatste is, dan mogen we een comma schrijven.

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
Voor mn JS moet elke entry met een comma geindigd worden behalve de laatste.

?