使用Python从xml文件中提取元素并将其转换为另一种形式

2024-10-03 06:27:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用Python从xmi文件中提取元素,并按照我想要的顺序将元素输出到新文件中。例如,我有以下xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns="SimpleClass">
  <Class name="AcademicInstitution" is_persistent="false">
    <attrs name="name" is_primary="true" type="/11"/>
  </Class>

我想将其转换为:

Class (AcademicInstitution).
Class (false).

我曾尝试使用Python ElementTree,但如果我使用node.attrib.get(),我必须编写类似node.attrib.get('name')node.attrib.get('is_persistent')的代码,并得到结果AcademicInstitution false

但是,如果不在get()中输入'name'和'is_persistent',如何直接获得这些结果呢? 如何从xml文件中获取“Class”字符串??? 谢谢


Tags: 文件namenodefalse元素getisversion
1条回答
网友
1楼 · 发布于 2024-10-03 06:27:35

元素的attrib属性是所有属性的字典

from xml.etree import ElementTree 

tree = ElementTree.parse('sample.xml')

for el in tree.getiterator():
    _, _, tag = el.tag.rpartition('}')
    for att in el.attrib:
        print(f"{tag} ({el.attrib.get(att)})")

从您的样本中得出以下结果(需要一个结束</xmi:XMI>才有效):

XMI (2.0)
Class (AcademicInstitution)
Class (false)
attrs (name)
attrs (true)
attrs (/11)

相关问题 更多 >