我尝试使用不同的 python3 模块和互联网上的不同文章来解析 XML,但没有成功。
我有这个 XML:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:cwmp="urn:dslforum-org:cwmp-1-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><SOAP-ENV:Header/>
<SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<cwmp:GetParameterValuesResponse>
<ParameterList SOAP-ENC:arrayType="cwmp:ParameterValueStruct[3]">
<ParameterValueStruct>
<Name>SOME_NAME_1_HERE</Name>
<Value>2</Value>
</ParameterValueStruct>
<ParameterValueStruct>
<Name>SOME_NAME_2_HERE</Name>
<Value>180</Value>
</ParameterValueStruct>
<ParameterValueStruct>
<Name>SOME_NAME_3_HERE</Name>
<Value>1800</Value>
</ParameterValueStruct>
</ParameterList>
</cwmp:GetParameterValuesResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
我需要从 XML 标签中获取数据:名称和值
它应该是这样的:
SOME_NAME_1_HERE 2
SOME_NAME_2_HERE 180
SOME_NAME_3_HERE 1800
我如何使用Python3获取这个值(使用python默认模块会很好 - 而不是bs4)?
Thanks
Using xml.etree
您可以执行简单的 XPath 表达式.//element_name
在给定上下文元素中的任何位置查找元素:
from xml.etree import ElementTree as ET
tree = ET.parse('path_to_your_xml.xml')
root = tree.getroot()
for p in root.findall('.//ParameterValueStruct'):
print("%s | %s" % (p.find('Name').text, p.find('Value').text))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)