Проверьте, является ли параметр одним из нескольких значений в XSLT
Возможный дубликат:
Выражение XSLT, чтобы проверить, принадлежит ли переменная множеству элементов
Учитывая параметр, $name
Что такое короткий и чистый способ проверить, равно ли его значение одному из конечного числа значений?
Например, скажем, я хотел объединить первые 3 из этих when
тесты, потому что их содержание было точно таким же.
<choose>
<when test="$name='Alice'">
<when test="$name='Bob'">
<when test="$name='Cindy'">
<when test="$name='Dave'">
<otherwise>
Что-то вроде test="$name in ['Alice','Bob','Cindy']"
кроме действительного:P
2 ответа
Решение
С XSLT 2.0 достаточно использовать $name = ('Alice', 'Bob', 'Cindy')
,
Используйте (как в XSLT 1.0, так и в XSLT 2.0):
contains('|Alice|Bob|Cindy|', concat('|', $name, '|'))
и, как уже упоминал Мартин Хоннен, только в XPath 2.0 (XSLT 2.0) можно просто написать:
$name = ($seqOfNames)