【发布时间】:2018-09-25 17:12:14
【问题描述】:
我是 Python/XML 的新手。我想解析一个 XML 以获取父节点下的数据。 我的 XML 有一组具有不同名称的“实体”节点。在每个“实体”下,都有一组“属性”,如下所示。我需要获取特定实体的所有属性。例如,如果它是实体“退出”,我需要获取相应的“属性”名称,用逗号分隔作为字符串;例如,{QuitId, QuitReason, Status, QuitTime} 使用 Python 脚本。我只需要属性的“名称”属性。
<Entity Name="Boot">
<Property Name="BootId" Type="Edm.Int32" Nullable="false"/>
<Property Name="Name" Type="Edm.String" Nullable="false"/>
<Property Name="Status" Type="Edm.String" Nullable="false"/>
<Property Name="BootTime" Type="Edm.DateTimeOffset"/>
</Entity>
<Entity Name="Quit">
<Property Name="QuitId" Type="Edm.Int32" Nullable="false"/>
<Property Name="QuitReason" Type="Edm.String" Nullable="false"/>
<Property Name="Status" Type="Edm.String" Nullable="false"/>
<Property Name="QuitTime" Type="Edm.DateTimeOffset"/>
</Entity>
我可以使用以下脚本获取所有实体的属性“名称”。但是,我不确定如何才能仅获取特定实体的属性;比如“退出”
import xml.etree.ElementTree as ET
tree = ET.parse('D:\Code\XM_metadata.xml')
root = tree.getroot()
for prop in root.iter('{http://docs.oasis-open.org/odata/ns/edm}Property'):
print(prop.get('Name'))
【问题讨论】:
-
请发布根标签(XML 的要求)和尝试的 Python 代码。
-
您应该阅读本教程,该教程描述了基础知识以及如何从简单的 XML 结构中提取数据:docs.python.org/3/library/xml.etree.elementtree.html#tutorial
-
感谢您的 cmets。我可以使用添加到问题中的代码来获取名称。但是,我不确定如何获取特定实体的“属性”
标签: python xml python-3.x python-2.7 xml-parsing