Увы, завершение элемента в ElementTree
с помощью tree = ElementTree(el)
и попытка tree.findall('//foo')
, похоже, тоже не работают (кажется, вы можете искать только «под» элементом, и даже если поиск выполняется из полное дерево, оно ищет "под" корнем). Поскольку ElementTree не претендует на то, чтобы действительно реализовать xpath, трудно сказать, является ли это намерением или ошибкой.
Решение: без использования lxml с полной поддержкой xpath (например, el.xpath('//foo')
) самым простым решением было бы использование метода Element.iter () .
for foo in el.iter(tag='foo'):
print foo
или, если вы хотите, чтобы результаты в списке:
list(el.iter(tag='foo'))
Обратите внимание, что вы не можете использовать сложные пути таким образом, просто найдите все элементы с определенным тэгом, начиная с (и включая) элемент.