Sie können 'und' für jede Schleife verwenden, aber nicht so, wie Sie es erwähnt haben (Sie wissen nicht genau, was genau Sie erreichen möchten)
Ich gehe davon aus, dass Ihre Anforderungen etwas wie, entweder
1) Sie möchten Trip
durchlaufen, deren beide untergeordneten Entitäten ( instance
und result
) nicht null sind,
In diesem Fall müssen Sie so schreiben ..
Wenn eines der Beispiele und des Ergebnisses null ist, dann trägt Ihre Schleife nicht das Element trip ein.
2) Sie möchten alle instance
und result
children im übergeordneten trip
suchen, deren Werte nicht null sind. In diesem Fall brauchen Sie nicht and
..
Das wird funktionieren.
Beantworte jetzt deinen Q ..
Mit FOR-EACH-Schleife können Sie den Umfang des Selektors festlegen.
Beispiel für ein Beispiel: Im Fall (1) war der Umfang des Selektors " root_name//trip
" und im Fall (2) war der Umfang des Selektors " root_name//trip/instance
" auch " root_name//trip/result
" ..
Ich hoffe, ich habe Ihre Frage richtig verstanden und sie als verständlich beantwortet.
Nein, Sie können and
nicht im Attribut select
verwenden.
Sie möchten den Operator union
verwenden: |
, der sich wie ein und verhält und wie ein oder aussieht, je nachdem, wie Sie denken darüber.
Es wird Ihnen eine eindeutige Liste beider Knotengruppen geben und sie in der Dokumentenreihenfolge zurückgeben, in der sie gefunden werden (nicht alle instance
und dann alle result
-Elemente).
Innerhalb von for-each
wechselt der Kontext während jeder Iteration zwischen den einzelnen ausgewählten Knoten. Sie können auf den aktuellen Knoten mit .
oder current()
zugreifen.