Для упрощения первое выражение «test» имеет следующий вид:
@attr = 'A' or 'B'
В некоторых языках такой синтаксис даже не допускается.Фактически это то же самое, что и это:
(@attr = 'A') or ('B')
Вы спрашиваете " Является ли выражение attr = 'A'
истиной ИЛИ является ли выражение 'B'
истиной ?".В XSLT запрос " является ли выражение 'B'
true? " фактически вернет true, потому что строка 'B' не пуста.Таким образом, все выражение всегда будет истинным независимо от значения атрибута.
Итак, вы должны написать @attr = 'A' or @attr = 'B'
здесь.
Если вы ищете какой-то более короткий синтаксис, если вы можете использоватьXSLT 2.0, вы можете написать это:
@attr = ('a', 'b')
Что похоже на выражение " Равен ли @attr какому-либо значению в последовательности? "