Variabler Bereich in XSLT

7

Ich habe ein Problem, das versucht, var scoping auf xslt herauszufinden. Was ich eigentlich tun möchte, um "Trip" -Tags zu ignorieren, die einen wiederholten 'Tourcode' haben.

Beispiel-XML:

%Vor%

XSLT-Prozessor:

%Vor%

Gewünschte Ausgabe: Budapest London Rom

    
Zoheir 05.02.2010, 01:46
quelle

3 Antworten

8
  

Erwünschte Leistung : Budapest London Rom

Was Sie suchen, ist die Gruppierung , die nach dem Städtenamen ausgegeben wird. Es gibt zwei gängige Möglichkeiten, dies in XSLT zu tun.

Einer von ihnen ist das:

%Vor%

Und der andere heißt Muenchian Gruppierung und @Rubens Farias hat gerade eine Antwort geschrieben, die zeigt, wie es geht.

    
Tomalak 05.02.2010, 10:07
quelle
24

Sie können Variablen in XSLT nicht ändern.

Sie müssen sich mehr als funktionale Programmierung anstatt prozedural vorstellen, weil XSLT eine funktionale Sprache ist. Denken Sie über das variable Scoping in so etwas wie diesem Pseudocode nach:

%Vor%

Was erwarten Sie von der Ausgabe? Es sollte 10 5 , nicht 10 10 sein, weil% temp in der Funktion other nicht dieselbe Variable wie temp außerhalb dieser Funktion ist.

Es ist das gleiche in XSLT. Nach der Erstellung erstellte Variablen können nicht neu definiert werden, da es sich um schreibgeschützte Variablen mit mehreren Variablen handelt.

Wenn Sie den Wert einer Variablen bedingt definieren möchten, müssen Sie die Variable bedingt wie folgt definieren:

%Vor%

Die Variable ist nur an einer Stelle definiert, ihr Wert ist jedoch bedingt. Jetzt, da der Wert temp gesetzt ist, kann er später nicht neu definiert werden. In der funktionalen Programmierung sind Variablen eher schreibgeschützte Parameter, da sie zwar festgelegt, aber später nicht mehr geändert werden können. Sie müssen dies richtig verstehen, um Variablen in jeder funktionalen Programmiersprache verwenden zu können.

    
Welbog 05.02.2010 02:13
quelle
4

Versuchen Sie Folgendes:

%Vor%     
Rubens Farias 05.02.2010 09:55
quelle

Tags und Links