В XSLT 1.0 вы можете использовать функцию contains()
:
test(contains('Val1,Val2,Val3',$var))`
Возвращает логический результат, проверяя, содержит ли первая строкавторая строка
Обычный способ помочь уменьшить ложноположительные результаты для частичных совпадений строк - это использовать разделитель и дополнять значения этим разделителем:
test="contains(' Val1 Val2 Val3 ', concat(' ',$var,' '))
Таким образом, если значение $var
был "Val
", он вернул бы true, только если "Val
" был добавлен в список тестируемых значений.
В XSLT 2.0 вы могли бы использовать:
test="$var = ('Val1','Val2','Val3')"
Он вернет true, если $var
равно любому из элементов в последовательности (это то, что вы определяете, когда в скобках указан список значений, разделенных запятыми).
Другое решение XSLT 2.0:
test="some $value in ('Val1','Val2','Val3') satisfies $var=$value"