XPath: рекурсивный поиск предков

Выбрав текущий узел, я хочу найти элемент <name>[./name] и вернуть текстовое содержимое. Если элемент <name> не существует в текущем выбранном узле, я хочу проверить родительский элемент [./parent::name] и т. д. рекурсивно до корня, возвращая значение ближайшего родителя, в котором находится элемент.

Можно ли это сделать с помощью XPath?

1 ответ

Решение

(Изменить: я неправильно истолковал вопрос в первый раз)

Я предлагаю использовать

ancestor-or-self::name[1]

Это находит все name элементы, начиная с себя, родителя и т. д., и упорядочивает их по мере удаления от себя. Итак, выбирая [1] дает вам ближайший.

Другие вопросы по тегам