Вы можете использовать 'и' для каждого цикла, но не так, как вы упомянули (не будучи уверенным, чего именно вы хотите достичь)
Я предполагаю, что ваши требования что-то вроде,
1) Вы хотите перебрать Trip
, чьи оба дочерних объекта (instance
и result
) не нулевые,
В этом случае вы должны написать так ..
<xsl:for-each select="trip[instance!='' and result!='']>
если среди экземпляра и результата есть ноль, то ваш цикл не входит в элемент, а именно trip.
2) Вы хотите найти всех instance
и result
дочерних элементов в родительском trip
, чьи значения не равны NULL. В этом случае вам не нужно and
..
<xsl:for-each select="trip/instance[.!=''] | trip/result[.!='']">
Это будет работать.
Теперь ответьте на свой вопрос ..
с циклом FOR-EACH вы можете установить область действия селектора.
для примера: в случае (1) область селектора была "root_name//trip
", а в случае (2) область селектора была "root_name//trip/instance
" также "root_name//trip/result
" ..
Надеюсь, я правильно понял ваш вопрос и ответил на него как понятный ..