Получить атрибуты с нескольких уровней в XPATH - PullRequest
0 голосов
/ 05 февраля 2020

Учитывая XML аналогично следующему XML

<all>
<alpha a="zulu">
<bravo b="yankee" />
</alpha>
<alpha a="xray">
<charlie b="whiskey" />
</alpha>
</all>

Существует ли запрос XPATH, который вернет это? В частности, я буду запускать это в python проекте с l xml.

a="zulu",b="yankee"
a="xray",b="whiskey"

1 Ответ

1 голос
/ 05 февраля 2020

Попробуйте это

from lxml import etree
tree = etree.parse('input.xml')

for item in tree.xpath('//alpha/descendant-or-self::*'):
    print item.attrib 

Вывод:

{'a': 'zulu'}
{'b': 'yankee'}
{'a': 'xray'}
{'b': 'whiskey'}
...