如何使用ElementTree将xml读入python 3中的表

时间:2015-11-24 21:02:19

标签: python xml python-3.x elementtree

我有一个xml文件,如下所示,我想用ElementTree(ET)读取它,我想要的结果是一个表,(我希望代码是可迭代的,因为xml要大得多,并且包含各种对象,参数,节点和值...(我在网站上搜索了可能的解决方案,但是我的xml结构不同,只包含标签,没有属性,也需要迭代) xml:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="MeasDataCollection.xsl"?>
<!DOCTYPE mdc SYSTEM "MeasDataCollection.dtd">
<mdc xmlns:HTML="http://www.w3.org/TR/REC-xml">
    <md>
        <neid>
        <neun>Node1</neun>
        <nedn>ParentObject</nedn>
        <nesw>CXP90</nesw>
    </neid>
    <mi>
        <mts>time</mts>
        <gp>900</gp>
        <mt>parameter1</mt>
        <mt>parameter2</mt>
        <mt>parameter3</mt>
        <mv>
            <moid>object1</moid>
            <r>value1</r>
            <r>value2</r>
            <r>value3</r>
        </mv>
        <mv>
            <moid>object2</moid>
            <r>value4</r>
            <r>value5</r>
            <r>value6</r>
        </mv>
    </mi>
    </md>
</mdc>

和预期的输出:

Node1  ParentObject  time  parameter1  object1  value1
Node1  ParentObject  time  parameter2  object1  value2
Node1  ParentObject  time  parameter3  object1  value3
Node1  ParentObject  time  parameter1  object2  value4
Node1  ParentObject  time  parameter2  object2  value5
Node1  ParentObject  time  parameter3  object2  value6

我到目前为止编写的代码是:(我知道它不完整)

import xml.etree.cElementTree as ET
tree = ET.ElementTree(file='a.xml')
root=tree.getroot()
print(root, root.tag, root.attrib)
for child in tree.iterfind('Object1'):
    print(child.tag, child.attrib, child.text)

0 个答案:

没有答案