1. ホーム
  2. xslt

[解決済み] XSLの "contains "ディレクティブはありますか?

2022-03-07 04:36:13

質問

次のような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文が機能しないのは、containsの構文がうまくいかないからです。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)