Minidom元素插入xml

时间:2015-04-18 21:12:25

标签: python xml minidom

我在将数据结构插入到xml文档时遇到了一些问题。但没有大的成功。我有文件,例如。

<?xml version="1.0" ?>
<marl version="2.1" xmlns="xxxx.xsd">
    <mcdata id="2" scope="all" type="plan">
        <header>
            <log action="created"/>
        </header>
        <mObject class="foo" distName="a-1">
            <p name="Ethernet">false</p>
            <list name="pass"/>
        </mObject>
        <mObject class="bar" distName="a-1/b-2">
            <p name="Voltage">false</p>
        </mObject>
    </mcdata>
</marl>

我的代码的基本版本是这样的,但似乎没有效果,因为output.xml与mini.xml相同。

from xml.dom.minidom import *
document = parse('mini.xml')
mo = document.getElementsByTagName("mObject")
element = document.createElement("mObject")
mo.append(element)
with open('output.xml', 'wb') as out:
    document.writexml(out)
    out.close()

1 个答案:

答案 0 :(得分:0)

创建一个新节点并根据需要进行装饰:

#create node <mObject>
element = document.createElement("mObject")
#add text content to the node
element.appendChild(document.createTextNode("content"))
#add attribute id to the node
element.setAttribute("id"  , "foo")
#result: <mObject id="foo">content</mObject>

将新创建的节点添加到父节点:

#select a parent node
mc = document.getElementsByTagName("mcdata")[0]
#append the new node as child of the parent
mc.appendChild(element)