Я пытаюсь разобрать некоторые XML на пару часов без везения. Проверял аналогичные темы и просмотрел документы ElementTree и все еще довольно потерял.ElementTree: Разборчивость правнуков XML
В принципе, я получаю XML-вывод от маршрутизатора, который хранится в строке, что я, в свою очередь, должен анализировать какую-то конкретную информацию.
Вот пример XML-я работаю:
xml = """<rpc-reply xmlns:junos="http://xml.juniper.net/junos/14.1D0/junos">
<route-information xmlns="http://xml.juniper.net/junos/14.1D0/junos-routing">
<!-- keepalive -->
<route-table>
<table-name>inet.0</table-name>
<destination-count>52</destination-count>
<total-route-count>52</total-route-count>
<active-route-count>52</active-route-count>
<holddown-route-count>0</holddown-route-count>
<hidden-route-count>0</hidden-route-count>
<rt junos:style="brief">
<rt-destination>5.5.5.5/32</rt-destination>
<rt-entry>
<active-tag>*</active-tag>
<current-active/>
<last-active/>
<protocol-name>Direct</protocol-name>
<preference>0</preference>
<age junos:seconds="428929">4d 23:08:49</age>
<nh>
<selected-next-hop/>
<via>lo0.0</via>
</nh>
</rt-entry>
</rt>
</route-table>
</route-information>
<cli>
<banner></banner>
</cli>
</rpc-reply>"""
Например, узел Я хотел бы получить к/печать содержимого является к.т.-назначения.
Я пробовал:
root = ET.fromstring(xml)
values = root.find('rt')
for element in values:
print element.text
Этот,
value= root.find('rt-destination')
print value
И это, чтобы установить корень (указатель?) На конкретном узле,
x = root.getiterator(tag = "destination-count")
Любая помощь относительно того, как переход к этому конкретному узлу или как добраться до желаемого результата будет очень оценен.