在python中向xml文件中添加新元素并保留缩进

时间:2014-11-11 15:23:40

标签: python xml minidom

我有两个文件,如下所示:

parent.xml

<?xml version="1.0" ?>
<persons>
    <person name="Tom" surname="Tomerson"/>
    <person name="Dave" surname="Davidson"/>
</persons>

child.xml

<?xml version="1.0" ?>
<person name="Mike" surname="Michaelson"/>

我想将子文件中的元素添加到父文件中,以便最终得到如下所示的parent.xml文件:

<?xml version="1.0" ?>
<persons>
    <person name="Tom" surname="Tomerson"/>
    <person name="Dave" surname="Davidson"/>
    <person name="Mike" surname="Michaelson"/>
</persons>

然而,实际上我最终得到的是一个看起来像这样的parent.xml文件:

<?xml version="1.0" ?>
<persons>
    <person name="Tom" surname="Tomerson"/>
    <person name="Dave" surname="Davidson"/>
<person name="Mike" surname="Michaelson"/></persons>

,即新元素的缩进与前面的元素不匹配。添加新元素后没有插入新行。我正在尝试的代码如下:

import xml.dom.minidom

class add_xml_fragment:

  def add_fragment(self, file, parentFile):
        childDoc = xml.dom.minidom.parse(file)
        elem = childDoc.documentElement
        parent_doc = xml.dom.minidom.parse(parentFile)
        parent_root = parent_doc.documentElement
        parent_root.appendChild(elem)
        parent_doc.writexml(open(parentFile,'w'))

instance = add_xml_fragment()
instance.add_fragment("child.xml", "parent.xml")

如何修改上面的代码以使用正确的缩进和换行符来实现所需的文件?

0 个答案:

没有答案