Kann ich 'und' - operator in xsl for-each?
Einfach können, führe ich im folgenden in xsl?
<xsl:for-each select="trip/instance[.!=''] and trip/result[.!='']">
</xsl:for-each>
Q: Wenn ich wählen Sie="" in der for-each-ändert sich der Umfang meiner Auswahl für den code, den ich verwenden innen für-jeden?
Du musst angemeldet sein, um einen Kommentar abzugeben.
können Sie 'und' in for-each-Schleife, aber nicht in der Weise, die Sie erwähnt haben (nicht sicher, was genau Sie erreichen wollen)
Ich davon aus, dass deine Anforderungen etwas wie, entweder
1) Sie wollen die Schleife durch
Trip
deren beiden untergeordneten Entitäten sind (instance
undresult
) not null,In diesem Fall müssen Sie schreiben, wie diese ..
wenn einer unter-Instanz und Ergebnis null, dann wird deine Schleife nicht betreten das element nämlich, Reise.
2) Sie möchten, um zu versuchen, durch jede
instance
undresult
Kinder im in-Eltern -trip
deren Werte nicht null sind. In diesem Fall brauchen Sie nichtand
..Dies funktionieren wird.
Nun die Antwort auf deine Frage ..
mit FOR-EACH-Schleife können Sie den Umfang der Selektor ..
für-Beispiel:In Fall (1), Umfang der Auswahl war "
root_name//trip
" und im Fall (2) Umfang der Auswahl war "root_name//trip/instance
" auch "root_name//trip/result
" ..Ich hoffe, ich habe deine Frage verstanden und richtig beantwortet, es so verständlich ..
Nein, Sie können nicht
and
imselect
Attribut.Wollen Sie das
union
Betreiber:|
verhält sich wie ein und und wie ein oder, je nachdem, wie Sie darüber denken.Wird es geben Sie eine eindeutige Liste von Mengen von Knoten und kehren Sie in das Dokument, damit es Sie findet(nicht alle
instance
und dann alleresult
Elemente).Innerhalb der
for-each
wird der Kontext-switch zwischen den einzelnen ausgewählten Knoten während jeder iteration. Sie können Zugriff auf den aktuellen Knoten mit.
odercurrent()
.