Verwendung der Variable xsl, um die Ausgabe der Call-Vorlage zu erfassen, die für mich leer ist

7

Ich habe viele Beiträge gesehen, die so etwas tun und das gibt mir das Gefühl, dass das möglich ist und ich mache nur etwas falsch. Ich habe es so weit wie möglich vereinfacht, um herauszufinden, warum dies geschieht:

Heres mein xml (nichts sehr aufregendes):

%Vor%

Hier ist mein xsl:

%Vor%

Hier ist mein Ergebnis:

%Vor%

Hier ist meine Frage: Wie funktionieren TEST2 und TEST3 nicht? Die Variable $ tryThisTemplate scheint leer zu sein. Verstehe ich hier etwas falsch. Sollte ich das anders machen?

    
testing123 13.06.2011, 21:48
quelle

4 Antworten

15

Hier ist die richtige Vorgehensweise (beachten Sie, dass DOE nicht notwendig ist und vermieden werden sollte):

%Vor%

, wenn diese Umwandlung auf das bereitgestellte XML-Dokument angewendet wird :

%Vor%

das gewünschte Ergebnis wird erzeugt :

%Vor%

Erläuterung: <xsl:copy-of> kopiert (wie der Name sagt) Knoten. <xsl:value-of> gibt den Zeichenfolgenwert des Attributs select aus. Der Zeichenfolgenwert eines Elements ist die Verkettung (in Dokumentreihenfolge) aller seiner Textknotenabkömmlinge. In Ihrem Fall hat das Element keine Text-Knoten-Nachkommen und somit gibt <xsl:value-of> nichts aus.

    
Dimitre Novatchev 14.06.2011, 02:32
quelle
3

Ja, hier gibt es ein Missverständnis. Wenn Sie versuchen, die Struktur von $tryThisTemplate in die Ausgabe zu kopieren, müssen Sie <xsl:copy-of> anstelle von <xsl:value-of> verwenden. <xsl:value-of> gibt den Zeichenfolgenwert seines Auswahlarguments aus, dh seinen Textinhalt, der in diesem Fall eine leere Zeichenfolge ist.

    
LarsH 13.06.2011 22:26
quelle
2
  

Die Variable $ tryThisTemplate scheint leer zu sein

Die Variable ist nicht leer, aber mit xsl:value-of werden Sie nach den darin enthaltenen Textknoten gefragt. Das ist "leer".

Versuchen Sie zum Beispiel mit:

%Vor%

Und Sie werden sehen magisch erscheinen MY_NODE zwischen TEST3 :))

    
Emiliano Poggi 13.06.2011 22:25
quelle
0

schau dir meine Lösung an

Hier ist meine Vorlage (war verifizierbarer Inhalt)

%Vor%

und wenn ich es in einer anderen Vorlage verwende, nenne ich es einfach so

%Vor%

hoffe das hilft dir

    
Basheer AL-MOMANI 08.01.2017 08:00
quelle

Tags und Links