XPath: рекурсивный поиск предков
Выбрав текущий узел, я хочу найти элемент <name>
[./name]
и вернуть текстовое содержимое. Если элемент <name>
не существует в текущем выбранном узле, я хочу проверить родительский элемент [./parent::name]
и т. д. рекурсивно до корня, возвращая значение ближайшего родителя, в котором находится элемент.
Можно ли это сделать с помощью XPath?
1 ответ
Решение
(Изменить: я неправильно истолковал вопрос в первый раз)
Я предлагаю использовать
ancestor-or-self::name[1]
Это находит все name
элементы, начиная с себя, родителя и т. д., и упорядочивает их по мере удаления от себя. Итак, выбирая [1]
дает вам ближайший.