我有以下xsl。
<xsl:param name="ip"/>
<xsl:for-each select="log/event[@ip=$ip]">
<!--content-->
</xsl:for-each>
我正在传递ip
参数。在某些情况下,我需要选择每个log/event
,而不是ip
。例如,我想传递ip="*"
,在这种情况下,我想选择所有log/event
个节点。我怎样才能做到这一点?感谢
答案 0 :(得分:4)
<xsl:for-each select="log/event[$ip = '*' or @ip = $ip]">...</xsl:for-each>
应该这样做。只需确保星号*
不是ip
属性可以包含的值之一。
答案 1 :(得分:0)
如果您不关心该属性,请使用:
<xsl:param name="ip"/>
<xsl:for-each select="log/event">
<!--content-->
</xsl:for-each>
如果您不关心ip属性的值,但您只想选择至少具有ip
属性的节点:
<xsl:param name="ip"/>
<xsl:for-each select="log/event[@ip]">
<!--content-->
</xsl:for-each>