Was ist der Unterschied zwischen <xsl:apply-templates />
und <xsl:apply-templates select="." />
? Ich dachte, dass die select="."
nicht notwendig ist, aber ich bekomme unterschiedliche Ergebnisse, je nachdem, welche ich verwende.
Tut mir leid, wenn das eine Wiederholung ist. Ich habe versucht, dieses Problem zu suchen, konnte aber nichts finden.
Was ist der Unterschied zwischen?
<xsl:apply-templates />
und<xsl:apply-templates select="." />
Die erste Anweisung :
%Vor%ist eine Abkürzung für :
%Vor%Der zweite Befehl :
%Vor%ist eine Abkürzung für:
%Vor%Wie wir sehen, sind nicht nur diese beiden Anweisungen unterschiedlich (die erste wendet Vorlagen auf alle untergeordneten Knoten an und die letztere wendet Vorlagen auf den aktuellen Knoten an), aber letzteres ist gefährlich und kann oft zu einer Endlosschleife führen!
Haben Sie an den Unterschied zwischen
gedacht? %Vor%und
%Vor%? Der Grund, warum ich frage ist, dass <xsl:apply-templates select="." />
sehr ungewöhnlich ist, während <xsl:apply-templates select="*" />
sehr häufig ist.
Wenn Sie zwischen diesen beiden Alternativen wählen, ist select="*"
oft unnötig, aber es gibt einen Unterschied:
<xsl:apply-templates select="*" />
nur Kind auswählen
Element Knoten. Wenn die Eingabe-XML also andere untergeordnete Knoten als Elemente haben kann und Sie diese Knoten nicht verarbeiten möchten, ist <xsl:apply-templates select="*" />
das, was Sie wollen.