XSL Variablen speichern vergleichen oder so

Hallo alle zusammen,

ich möchte gerne nur Checkboxen erzeugen lassen, wenn eine Komponente noch nicht angegeben ist. Oh je, irgendwie ist das nicht so eindeutig. Also in Java würde der Sachverhalt so aussehen:

Code:
int temp;
for(String komponente : komponenten){
if(temp != null){
if(!temp.equals(komponente)){
// erzeuge eine Checkbox mit genau dieser Komponente als Label
temp = komponente;
}
}
else{
// erzeuge eine Checkbox mit genau dieser Komponente als Label
temp = komponente;
}
}

Also und dass will ich mit XSL. Meine XML sieht so aus:

Code:

<?xml version="1.0" encoding="UTF-8" ?>

  • irgendwas
  • 1316.084864
  • 1316.084432
  • 2222.222432
  • 2222.222432

an dieser XML kann ich nichts mehr ändern. Und meine XSL in dem Bereich sieht so aus:

HTML-Code:

Meine Frage ist, ob es möglich ist den obigen Java-Code in XSL zu schreiben, wenn ja wie? Und wenn nein, kann ich das irgendwie mit Javascript machen und wenn ja wie und wie würde ich es dann in die XSL wieder einbinden.

MfG

Hallo,

Also in Java würde der Sachverhalt so
aussehen:

int temp;
for(String komponente : komponenten){
if(temp != null){
if(!temp.equals(komponente)){

int lässt sich nicht mit String vergleichen.

Aber wenn ich dich richtig verstanden habe, soll jede Komponente nur einmal auftauchen, also die beiden doppelten Werte aus deinem Beispiel herausgefiltert werden?

Welche XSL/XPath Version benutzt du? XPath 2.0 kennt die Funktion select-distinct() : http://www.w3.org/TR/xpath-functions/#func-distinct-…

Saxon ist ein XSLT Prozessor für Java der die Version 2.0 unterstützt: http://saxon.sourceforge.net/

Alternativ mit 1.0:

Das bedeutet: alle Row Elemente, deren Komponente-Wert nicht bereits auf der selben Ebene vorgekommen ist: http://www.cafeconleche.org/books/bible2/chapters/ch…

Gruß
Heavy

Hallo Heavy,
vielen dank für deine Antwort. Ich habe das Problem auch so in der Art gelöst.