XSLT:不包含检查

TSS*_*S22 14 xslt

我需要创建一个检查"不包含"条件的XSL.例如,我的XML是这样的:

<Categories>
  <category>
    <blog>ABC</blog>
    <link>http://www.msdn.com</link>
  </category>
</Categories>
Run Code Online (Sandbox Code Playgroud)

我想告诉每一个<blog>地方<link>不包含"msdn".我不想使用equals,因为我只想查看部分链接.

Pet*_*oby 38

我不确定你想要什么HTML输出,但希望这可以让你开始.

<xsl:template match="category">
    <xsl:if test="not(contains(link, 'msdn'))">
        <a href="{link}">
            <xsl:value-of select="blog" />
        </a>
    </xsl:if>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

您还可以在模板匹配(或apply-templates select)谓词中包含测试,如下所示:

<xsl:template match="category[not(contains(link, 'msdn'))]">
Run Code Online (Sandbox Code Playgroud)

  • 我可能会检查`not(starts-with(substring-after(link,'://'),'www.msdn.com'))),以使匹配明确。 (2认同)