如何解决在具有相同名称python XML的特定元素之间获取数据
我对python很陌生,遇到了一些我似乎找不到解决方案的东西。这是下面的XML数据:
<root>
<prototype name="one">
<child>
<attr_node name="attr01"/>
<attr_node name="attr02"/>
<attr_node name="attr03"/>
</child>
</prototype>
<prototype name="two">
<child>
<attr_node name="attr01"/>
<attr_node name="attr02"/>
</child>
</prototype>
</root>
所以我一直想做的是仅从名称为“ one”的“ prototype”标签中获取“ child”标签中的数据。但是,我无法找出如何从具有相同名称的元素中专门获取数据。
所需的输出是:
name="attr01"
name="attr02"
name="attr03"
非常感谢您的帮助!谢谢
解决方法
下面
import xml.etree.ElementTree as ET
xml = '''<root>
<prototype name="one">
<child>
<attr_node name="attr01"/>
<attr_node name="attr02"/>
<attr_node name="attr03"/>
</child>
</prototype>
<prototype name="two">
<child>
<attr_node name="attr01"/>
<attr_node name="attr02"/>
</child>
</prototype>
</root>'''
root = ET.fromstring(xml)
attrs = [a.attrib['name'] for a in root.find('.//prototype[@name="one"]').findall('./child/attr_node')]
print(attrs)
输出
['attr01','attr02','attr03']
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。