XPath: рекурсивный поиск предков - PullRequest
1 голос
/ 01 сентября 2009

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

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

1 Ответ

6 голосов
/ 01 сентября 2009

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

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

ancestor-or-self::name[1]

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

...