Я пытаюсь получить элементы из XML. Кажется, работает нормально для всего документа, кроме случаев, когда я нажимаю на что-либо в элементе STYLE Тогда l xml не строит дерево. Возврат к нормальной функции после прохождения элемента. Я думал, что это могло быть зарезервированное имя элемента, но я не могу найти ничего подтверждающего это. Может быть, я упускаю что-то явно очевидное ...
import requests
import lxml.html
response = requests.get('http://www.beerxml.com/recipes.xml')
def depth(node):
d = 0
while node is not None:
d += 1
node = node.getparent()
return d
tree = lxml.html.fromstring(response.content)
for recipe in tree:
for child in recipe.iter():
print(depth(child),child.tag, '\t\t\t',child.text)
Результат:
5 style
<NAME>Witbier</NAME>
<VERSION>1</VERSION>
<CATEGORY>Belgian & French Ale</CATEGORY>
<CATEGORY_NUMBER>1</CATEGORY_NUMBER>
...
Ожидаемый результат:
5 style
6 name Witbier
6 version 1
6 category Belgian & French Ale
6 category_number 1
....