2013-06-27 24 views
1

具有任何屬性值的XSL選擇節點我有以下xsl。使用參數

<xsl:param name="ip"/> 

<xsl:for-each select="log/event[@ip=$ip]"> 
<!--content--> 
</xsl:for-each> 

我通過ip參數。在某些情況下,我需要選擇每個log/event而不取決於ip。例如,我想通過ip="*",在這種情況下,我想選擇所有的log/event節點。我怎樣才能做到這一點?由於

回答

4

<xsl:for-each select="log/event[$ip = '*' or @ip = $ip]">...</xsl:for-each>應該做的。只要確保星號*不是ip屬性可以具有的值之一。

+0

只是'log/event [@ip]'有什麼問題? – hek2mgl

+0

是的,這是解決方案。 @ hek2mgl你的「解決方案」根本不依賴於參數值。 –

+0

@ hr_117的'*'是否依賴於屬性值?順便說一句,OP寫道:'在某些情況下,我需要選擇每個日誌/事件不取決於IP' ...瘋狂的評論,對不起! – hek2mgl

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>