是否有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)