微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python-在中间追加孩子

我想使用python的minidom向XML文件添加元素.
假设我有以下xml文件

<node-a>
    <node-1/>
    <node-2/>
    <node-3/>
<node-a/>

在这种情况下,我可以轻松地附加元素“ node-4”,如下所示

node4 = designDOM.createElement('node-4')
nodea.appendChild(node4)

产生以下xml:

<node-a>
    <node-1/>
    <node-2/>
    <node-3/>
    <node-4/>
<node-a/>

我的问题是:如果我想强制在特定位置而不是在最后插入元素,该怎么办?例如,如果我想要元素“ 2-a”,例如以下xml,我该怎么办?

<node-a>
    <node-1/>
    <node-2/>
    <node-2a/>
    <node-3/>
    <node-4/>
<node-a/>

解决方法:

您可以使用insertBefore()

import xml.dom.minidom

data = """<node-a>
    <node-1/>
    <node-2/>
    <node-3/>
</node-a>"""

dom = xml.dom.minidom.parseString(data)
node_a = dom.getElementsByTagName('node-a')[0]

node_4 = dom.createElement('node-4')
node_a.appendChild(node_4)

node_3 = dom.getElementsByTagName('node-3')[0]
node2_a = dom.createElement('node-2a')
node_a.insertBefore(node2_a, node_3)

print dom.toprettyxml()

印刷品:

<node-a>
    <node-1/>
    <node-2/>
    <node-2a/>
    <node-3/>
    <node-4/>
</node-a>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。