我可以在xsl中执行以下操作吗?
<xsl:for-each select="trip/instance[.!=''] and trip/result[.!='']"> </xsl:for-each>
问:当我在for-each中使用select =“”时,它会改变我在每个内部使用的代码的选择器范围吗?
您可以在for-each循环中使用’and’,但不能以您提到的方式使用(不确定您想要实现的目标)
我认为你的要求也是如此
1)你想循环遍历其两个子实体(实例和结果)不为空的Trip,
在这种情况下,你必须这样写..
<xsl:for-each select="trip[instance!='' and result!='']>
如果实例和结果中的任何一个为null,那么你的循环不会进入元素,即trip.
2)你想通过父旅行中的每个实例和结果寻找其值不为空的子项.在这种情况下,你不需要和..
<xsl:for-each select="trip/instance[.!=''] | trip/result[.!='']">
这会奏效.
现在回答你的Q ..
使用FOR-EACH循环,您可以设置选择器的范围..
例如:在情况(1)中,选择器的范围是“root_name // trip”,在情况(2)中,选择器的范围是“root_name // trip / instance”也是“root_name // trip / result”..
我希望,我正确理解你的问题并回答它是可以理解的..