Можно ли выбрать элементы дерева XML, которые заканчиваются данной строкой?Не элементы, которые содержат атрибут, заканчивающийся строкой, а сами элементы?
Как уже упоминалось в моем комментарии, вы можете использовать функцию XPath-2.0 ends-with для решения этой проблемы.Его подпись
ends-with
заканчивается-с fn: заканчивается-с ($ arg1 как xs: строка ?, $ arg2 как xs: строка?) Как xs: логическое fn: заканчивается-с ($ arg1 как xs: строка?, $ arg2 как xs: строка?, $ сопоставление как xs: строка) как xs: логическое Сводка: Возвращает xs: логическое значение, указывающее, заканчивается ли значение $ arg1 последовательностью единиц сортировки, которая обеспечивает минимальное совпадение с единицами сортировки $ arg2 в соответствии с используемой сортировкой.
заканчивается-с fn: заканчивается-с ($ arg1 как xs: строка ?, $ arg2 как xs: строка?) Как xs: логическое fn: заканчивается-с ($ arg1 как xs: строка?, $ arg2 как xs: строка?, $ сопоставление как xs: строка) как xs: логическое
Сводка: Возвращает xs: логическое значение, указывающее, заканчивается ли значение $ arg1 последовательностью единиц сортировки, которая обеспечивает минимальное совпадение с единицами сортировки $ arg2 в соответствии с используемой сортировкой.
Таким образом, вы можетеиспользуйте следующее выражение для
выбора элементов дерева XML, которые заканчиваются данной строкой
для всего документа
//*[ends-with(.,'given string')]
Комуреализовать это в Xpath-1.0, см. этот SO ответ .
Например, чтобы выбрать все элементы, оканчивающиеся на «es», вы можете найти все элементы, имя которых содержит подстроку «es», начиная с позиции, соответствующей длине имени минус 1:
//*[substring(name(),string-length(name())-1,2) = "es"]