Прочитать определенную информацию из XML-файла с помощью Python - PullRequest
0 голосов
/ 19 июня 2019

Я новичок в xml и имею небольшой опыт работы с Python.Я пытаюсь использовать модуль Python xml.etree.ElementTree для анализа файла xml.Используя print(info.text), он может распечатать все элементы в файле xml, такие как WIL-RT2, Rtr_Cisco ..., но я хотел бы получить только WIL-RT2, а затем на основе WIL-RT2, яможет вернуть Rtr_Cisco.Вот часть моего xml файла:

<?xml version="1.0" encoding="ISO-8859-1"?>
<model-response-list xmlns="http://www.ca.com/spectrum/restful/schema/response" total-models="115" throttle="115" error="EndOfResults">
<model-responses>
<model mh="0x700e8f">
<attribute id="0x1006e">WIL-RT2</attribute>
<attribute id="0x10000">Rtr_Cisco</attribute>
<attribute id="0x12d7f">172.20.111.252</attribute>
<attribute id="0x12bfb">NAT,192.168.249.150</attribute>
<attribute id="0x100ae" error="NoSuchAttribute"/>
<attribute id="0x100af" error="NoSuchAttribute"/>
</model>
</model-responses>
</model-response-list>

Вот мой код Python

for item in root.findall("{http://www.ca.com/spectrum/restful/schema/response}model-responses"):
     #print(item.findall('{http://www.ca.com/spectrum/restful/schema/response}model'))
     for child in item.findall('{http://www.ca.com/spectrum/restful/schema/response}model'):
         #print(child.attrib, child.tag)
         for info in child.findall('{http://www.ca.com/spectrum/restful/schema/response}attribute'):
               print(info.tag, info.attrib)
               print(info.text)

1 Ответ

0 голосов
/ 20 июня 2019

есть способ получить текст. вот код печать (info.findtext ( "[@ ид = '0x1006e']"))

...