Подтвердить что ты не робот

XSLT: не содержит проверку

Мне нужно создать XSL, который проверяет условие "не содержит". Например, мой XML выглядит следующим образом:

<Categories>
  <category>
    <blog>ABC</blog>
    <link>http://www.msdn.com</link>
  </category>
</Categories>

Я хочу показать каждый <blog>, где <link> не содержит "msdn". Я не хочу использовать equals, потому что просто хочу проверить часть ссылки.

4b9b3361

Ответ 1

Я не уверен, какой именно вывод 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>

Вы также можете включить тест в соответствие шаблону (или выбрать шаблон шаблона) следующим образом:

<xsl:template match="category[not(contains(link, 'msdn'))]">

Ответ 3

Xpath для xsl: apply-templates или xsl: значение-должно содержать следующие

/Categories/category/blog[not( contains(following-sibling::link/text(), 'msdn'))]