I have the following snippet of 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>
The if statement does not work because I haven't been able to work out the syntax for contains. How would I correctly express that xsl:if?
This question is related to
xslt
Sure there is! For instance:
<xsl:if test="not(contains($hhref, '1234'))">
<li>
<a href="{$hhref}" title="{$pdate}">
<xsl:value-of select="title"/>
</a>
</li>
</xsl:if>
The syntax is: contains(stringToSearchWithin, stringToSearchFor)
<xsl:if test="not contains(hhref,'1234')">
Use the standard XPath function contains().
Function: boolean contains(string, string)
The contains function returns true if the first argument string contains the second argument string, and otherwise returns false
there is indeed an xpath contains function it should look something like:
<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>
It should be something like...
<xsl:if test="contains($hhref, '1234')">
(not tested)
See w3schools (always a good reference BTW)
Source: Stackoverflow.com