我有以下XML
<Categories>
<cat>Video</cat>
<cat>Audio</cat>
<cat>Hybrid</cat>
</Categories>
在我的XSL中,我想过滤'Audio'并将其余节点传递给调用模板,该模板将节点作为参数之一。如何实现这一点。
我试过以下,但没有运气。
尝试1:
<xsl:call-template name='xx'>
<xsl:with-param name='nodes' select="/Categories/cat[text()='Hybrid' or 'Video']"/>
</xsl:call-template>
尝试2:
<xsl:call-template name='xx'>
<xsl:with-param name='nodes' select="/Categories/cat[text()='Hybrid' or text()='Video']"/>
</xsl:call-template>
尝试3:
<xsl:call-template name='xx'>
<xsl:with-param name='nodes' select="/Categories/cat[contains(text(),'Hybrid,Video']"/>
</xsl:call-template>
如果我只有一个像下面这样的值
,它就有效<xsl:call-template name='xx'>
<xsl:with-param name='nodes' select="/Categories/cat[text()='Video']"/>
</xsl:call-template>
提前致谢。
答案 0 :(得分:1)
我想过滤'音频'和 将其余节点传递给调用 模板
你的第二个表达应该是:
/Categories/cat[text()='Hybrid' or text()='Video']
但是,我会用:
/Categories/cat[.!='Audio']
或者
/Categories/cat[not(.='Audio')]
答案 1 :(得分:0)
这种方法运作良好。
/Categories/cat[. ='Hybrid' or . ='Video']
感谢您的帮助。