[XSL] Sorted XML met following-sibling

Pagina: 1
Acties:

  • Blue-eagle
  • Registratie: September 2000
  • Niet online
Een normaal XML document is voor het systeem waarmee ik werk niet gesorteerd.
code:
1
2
3
4
5
6
7
8
<nodes>
    <node sortid="4"...
    <node sortid="3"...
    <node sortid="2"...
    <node sortid="5"...
    <node sortid="6"...
    <node sortid="1"...
</nodes>
Met XSL sorteer ik dit op @sortid (data-type="number") en dat werkt fantastisch. Nu zit ik bijvoorbeeld in node met het sortid 2. Als ik following-sibling gebruik om gegevens van de volgende node op te halen, krijg ik de node met het sortid 5 terug. Niet, zoals ik zou willen, van node met sortid 3.

Enkele "oplossingen" die ik al heb gevonden zijn:
  • Met een for-each loop de nodes, gesorteerd, in een javascript array opslaan, en daaruit de volgende node selecteren.
  • De basis XML via een serverside script mergen met een XSL document die de XML sorteert en weer terug geeft als XML, en deze gesorteerde XML vervolgens doorstuurt naar de juiste XSL pagina.
  • "Het kan niet".
Dus ik wil de following-sibling en de preceding-sibling uit een gesorteerde xml nodeset halen, voor respectievelijk een vorige en volgende knop.

Heeft iemand enig idee hoe ik dit het beste via XSL kan oplossen? Dus geen javascript en geen serverside scripting, als het even kan :)

[ Voor 8% gewijzigd door Blue-eagle op 24-03-2005 13:56 ]


Verwijderd

Wat als eerste in me opkomt is de gesorteerde nodeset eerst opslaan in een <xsl:variable/>. Dan kun je daarna gewoon over die nodeset itereren, waarbinnen following-sibling werkt zoals je zou verwachten.