python - 在具有相同名称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”的“原型”标签中获取“子”标签中的数据。但是,我不知道如何专门从具有相同名称的元素中获取数据。
所需的输出是:
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']
推荐阅读
- c# - sql server 实体框架 WPF 数据库第一个过程与选择返回列表
- apache-kafka - Apache骆驼Kafka异常处理
- ruby-on-rails - 尝试使用带有 Watir 的代理...(Rails)
- css - 在css中动态添加顶部?
- android - 带彩色频闪的屏幕闪光灯
- c# - 如何按照以下标准生成密码
- java - 从排序的arraylist构建BST的问题
- vb.net - 如何销毁 vb.net formUI 中的变量?
- javascript - 如何防止谷歌浏览器抑制确认()对话框
- database - TableAdapter.Insert(进入 ACCESS DB)获取 ID 的当前种子值