Форум сайта python.su
0
Всем привет
Пытаюсь парсить вот такую вот xml:
<?xml version="1.0" encoding="utf-8"?> <yandexsearch version="1.0"> <request> <query> </query> <page> 0 </page> <sortby order="ascending" priority="no"> tm </sortby> <maxpassages> </maxpassages> <groupings> <groupby attr="" mode="flat" groups-on-page="10" docs-in-group="1" curcateg="-1" /> </groupings> </request> <response date="20160115T093915"> <error code="2"> Задан пустой поисковый запрос </error> </response> </yandexsearch>
root = et.fromstring(xml) root.findall('error') // []
Офлайн
568
ZverushkoИ не должен
а вот findall не находит
print root.find("response").findall("error")
Офлайн
0
спасибо
а почему find ищет response, но не ищет error сразу?
Офлайн
857
ZverushkoЕсли это чисто философский вопрос, то потому что документ может содержать миллион узлов. Поэтому не очень было бы хорошо иметь такой метод, который всё время будет висеть, просматривая все вложенные узлы при каждом вызове. Поэтому сделали метод для просмотра в одном выбранном узле и только среди дочерних.
а почему find ищет response, но не ищет error сразу?
Офлайн