我有一个用例,我需要从XML文档中提取一些数据,然后使用简单的if / else语句采取一些措施。
我使用ElementTree库取得了部分成功,我可以使用get and find()检索“节点ID”,“名称”和“地址”。但是尝试从XML主体中“启用连接”是行不通的。
基本上,我需要知道“已启用连接”是对还是错,并采取适当的措施。我浏览了文档,尝试了各种方法,但是没有运气!
import requests
import xml.etree.ElementTree as ET
response = requests.get('http://10.xx.xx.xx/restapi/nodes')
#print(response.text)
tree = ET.fromstring(response.text)
for node in tree.findall('node'):
nodeid = node.get('id')
name = node.find('name').text
address = node.find('address').text
status = node.find('connected enabled')
print(nodeid, name, address, status)
我希望查看是否已启用连接= false或true,但我得到的只是“ NONE”
这是我得到的输出:
0B7E2B74-DA55-4AD3-BDEF-11EAC08A2622 i-xxx 10.33.xx.xx:45000 None
32A1A15C-4DB9-4634-B267-2F2760C3EAD3 i-yyy 10.33.xx.xx:45000 None
这是XML数据:
<node id='0B7E2B74-DA55-4AD3-BDEF-11EAC08A2622'>
<address>10.33.1.240:45000</address>
<name>i-0f60ca5b3447061e3</name>
<partition>Default</partition>
<version></version>
<active enabled='true' />
<connected enabled='false' />
<licensed enabled='true' />
<capacity>36</capacity>
<cpu_cores>36</cpu_cores>
<health>
<cpu_usage>0.00163664</cpu_usage>
<memory_usage>4</memory_usage>
<disk_usage>73</disk_usage>
<network_usage>3672</network_usage>
</health>
</node>
答案 0 :(得分:0)
尝试以下
status = node.find('connected').get('enabled')