是否有XSL“包含”指令?

我有以下的XSL片段:

<xsl:for-each select="item"> <xsl:variable name="hhref" select="link" /> <xsl:variable name="pdate" select="pubDate" /> <xsl:if test="hhref not contains '1234'"> <li> <a href="{$hhref}" title="{$pdate}"> <xsl:value-of select="title"/> </a> </li> </xsl:if> </xsl:for-each> 

if语句不起作用,因为我还没有能够找出包含的语法。 我将如何正确expressionxsl:if?

当然有! 例如:

 <xsl:if test="not(contains($hhref, '1234'))"> <li> <a href="{$hhref}" title="{$pdate}"> <xsl:value-of select="title"/> </a> </li> </xsl:if> 

语法是: contains(stringToSearchWithin, stringToSearchFor)

使用标准的XPath函数contains() 。

函数布尔值 包含 (string,string)

如果第一个参数string包含第二个参数string,则contains函数返回true,否则返回false

确实有一个xpath包含函数,它应该看起来像这样:

 <xsl:for-each select="item"> <xsl:variable name="hhref" select="link" /> <xsl:variable name="pdate" select="pubDate" /> <xsl:if test="not(contains(hhref,'1234'))"> <li> <a href="{$hhref}" title="{$pdate}"> <xsl:value-of select="title"/> </a> </li> </xsl:if> 

来自Zvon.org XSLT参考 :

 XPath function: boolean contains (string, string) 

希望这可以帮助。

 <xsl:if test="not contains(hhref,'1234')"> 

它应该是像…

 <xsl:if test="contains($hhref, '1234')"> 

(未testing)

见w3schools (总是一个很好的参考BTW)