21. juni 2010 - 11:48Der er
13 kommentarer og 1 løsning
lave en sammenligning med det forgående element i en for-each
Jeg henter noget data fra noget XML som ligges i en variable, denne variable lave jeg så efterfølgende et gennemløb af ved hjælp af en "for-each". nu har jeg brug for at kende til det forgående element i min liste, men hvordan gør jeg det i xslt?
Det her skal jeg
loop if( DetForgåendeElement/tid = AktuelleElement/tid) Gør noget med AktuelleElement
Tusind tak for din kommentar!! Jeg har et lille problem med ovenstående, for jeg sorterer data i min for-each og det tager "preceding-sibling" åbenbart ikke højde for. Har du en ide til hvordan jeg løser det?
Jeg har fundet frem til at når jeg bruger "preceding-sibling" i en for-each som er sorteret, så kigger "preceding-sibling" ikke i det sorterede resultat, men i det orginale resultat. Jeg har brug for at det kigge i det sorterede.
<!--Jeg henter så det data jeg skal bruge--> <xsl:variable name="skema" select="/Result/Timetable/TimetableEvent[generate-id(.) = generate-id(key('t', StartTime))]"></xsl:variable>
<!-- og gennemløber det --> <xsl:for-each select="$skema[(number(substring-before(StartTime,':'))*100+number(substring-after(StartTime,':'))) > 799]"> <xsl:sort select="number(substring-before(StartTime,':'))*100+number(substring-after(StartTime,':'))" data-type="number" order="ascending"/>
den forgående nodes slut tid viser den forgående node i mit orginale XML, og ikke den forgående node i min sorterede liste som jeg udskriver. Giver det mening?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.