我有这样的 XML:
<parameter>
<name>ec_num</name>
<value>none</value>
<units/>
<url/>
<id>2455</id>
<m_date>2008-11-29 13:15:14</m_date>
<user_id>24</user_id>
<user_name>registry</user_name>
</parameter>
<parameter>
<name>swisspro</name>
<value>Q8H6N2</value>
<units/>
我想解析 XML 并提取 <value>
位于<name>
下方的条目条目标记为“swisspro”。 IE。我想解析并提取“Q8H6N2”值。
我如何使用 ElementTree 来做到这一点?
最佳答案
通过 lxml
可以更容易地完成,但这里是使用 ElementTree
库的解决方案:
import xml.etree.ElementTree as ET
data = """<parameters>
<parameter>
<name>ec_num</name>
<value>none</value>
<units/>
<url/>
<id>2455</id>
<m_date>2008-11-29 13:15:14</m_date>
<user_id>24</user_id>
<user_name>registry</user_name>
</parameter>
<parameter>
<name>swisspro</name>
<value>Q8H6N2</value>
<units/>
</parameter>
</parameters>"""
tree = ET.fromstring(data)
for parameter in tree.iter(tag='parameter'):
name = parameter.find('name')
if name is not None and name.text == 'swisspro':
print parameter.find('value').text
break
打印:
Q8H6N2
这个想法非常简单:迭代所有 parameter
标签,检查 name
标签的值以及它是否等于 swisspro
,获取 value
元素。
希望有帮助。
关于python - 在 Python 中使用 ElementTree 解析 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22367498/