На самом деле, использование строковых функций XPath - верный способ сделать это. Все, что вам нужно убедиться, это то, что вы также проверяете разделители:
contains(concat(',' $list, ','), concat(',', $value, ','))
вернет логическое значение. Или вы можете использовать один из них:
substring-before(concat('|,' $list, ',|'), concat(',', $value, ','))
или
substring-after(concat('|,' $list, ',|'), concat(',', $value, ','))
Если в результате вы получите пустую строку, $value
не будет в списке.
РЕДАКТИРОВАТЬ:
@ Комментарий Димитра верен: substring-before()
(или substring-after()
) также вернет пустую строку, если найденная строка будет первой (или последней) в списке. Чтобы избежать этого, я добавил что-то в начале и конце списка. Тем не менее contains()
является рекомендуемым способом сделать это.