Эта таблица стилей XSLT 2.0 демонстрирует, как вы можете найти, какие слова находятся в двух других переменных, но не в тестируемой переменной.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output omit-xml-declaration="yes"/>
<xsl:variable name="variable1" select="'dog','cat','zebra'"/>
<xsl:variable name="variable2" select="'dog','cat','zebra','donkey'"/>
<xsl:variable name="variable3" select="'dog','cat','zebra','horse'"/>
<xsl:template match="/">
<xsl:text>Variable 1 was missing: </xsl:text>
<xsl:value-of select="($variable2, $variable3)[not(. = $variable1)]" separator=", "/>
<xsl:text> </xsl:text>
<xsl:text>Variable 2 was missing: </xsl:text>
<xsl:value-of select="($variable1, $variable3)[not(. = $variable2)]" separator=", "/>
<xsl:text> </xsl:text>
<xsl:text>Variable 3 was missing: </xsl:text>
<xsl:value-of select="($variable1, $variable2)[not(. = $variable3)]" separator=", "/>
</xsl:template>
</xsl:stylesheet>
Создаетследующий вывод:
Variable 1 was missing: donkey, horse
Variable 2 was missing: horse
Variable 3 was missing: donkey
Вы не показали, как присваивались значения переменных.Эти переменные в этой таблице стилей содержат последовательность строковых значений.Если ваши переменные представляют собой одну строку, вы можете использовать такие функции, как tokenize()
, чтобы разбить строку и вернуть последовательность слов для проверки.