Du kan bruge rekursion.
Jeg kan desværre ikke give dig et konkret eksempel, da det er for længe siden jeg har arbejdet med XSLT, men logikken er, at du laver en template som tager din node-liste af "result", samt et indeks på den aktuelle node.
I denne template sørger du dels for at kontrollere om det er den første -, sidste - eller en mellemliggende node (og reagerer på en passende måde derefter :-)).
Hvis det er første node, skal du ikke sammenligne med den forrige (via indeks i "result"-nodelisten), men blot udskrive noden og kalde templaten selv (call-template og with-params), med "result"-nodelisten og indeks+1. Efterfølgende noder skal sammenlignes med den forrige ("result"-nodelisten[$indeks-1] vha. en choose/when/otherwise-konstruktion.
For at starte rekursionen skal du kalde den på samme måde, dvs. med call-template og with-params.
select="by[.=preceding-sibling::by]" eller noe sånt.
Ser lite lettlest dokumentasjon på hvordan bruke preceding-sibling aksen.
tak for de gode svar :) det ser ud til at jeg kan løse det nemmest med select="by[.=preceding-sibling::by]" princippet :)
Mange tak... smid lige et svar softspot og janegil så kan i få point
Jeg synes janegil's løsning er væsentlig mere elegant og fiks end mit forslag, så de point synes jeg bare janegil skal have. Ellers tak for budet :-)
Hvis du fikk de til å virke, så tar jeg gjerne pts.
Men legg også ut litt av koden, for jeg føler meg på riktig tynn is her - jeg skal sitte lenge med koden før jeg får det til selv.
XSLT er et område der man skal vokte seg vel for å begynne å løse problemer - har man et problem er det som regel fordi man burde gjort sakene på en helt annen måte. Dagens slogan: "Problemer skal ikke løses - de skal omgåes!"
Tak for svaret :)
Og flot af dig SoftSpot at give point videre :)
MVH
Fuxi
Jeg erkender gerne når nogen har en bedre løsning end mig - så lærer jeg jo også noget... :)