次の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ステートメントは機能しません。 xsl: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には関数が含まれており、次のようになります。
<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>
標準を使用 XPath 関数 contains() 。
関数:booleancontains(文字列、文字列)
contains 関数は、最初の引数文字列に2番目の引数文字列が含まれる場合はtrueを返し、それ以外の場合はfalseを返します
<xsl:if test="not contains(hhref,'1234')">