首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在中间附加孩子

在中间附加孩子
EN

Stack Overflow用户
提问于 2014-04-22 13:22:05
回答 1查看 1.8K关注 0票数 5

我想使用python的minidom将一个元素添加到XML文件中。让我们假设我有以下xml文件

代码语言:javascript
运行
复制
<node-a>
    <node-1/>
    <node-2/>
    <node-3/>
<node-a/>

在这种情况下,我可以很容易地添加元素“not-4”,如下所示

代码语言:javascript
运行
复制
node4 = designDOM.createElement('node-4')
nodea.appendChild(node4)

由此产生的xml如下:

代码语言:javascript
运行
复制
<node-a>
    <node-1/>
    <node-2/>
    <node-3/>
    <node-4/>
<node-a/>

我的问题是:如果我想强迫在一个特定的位置插入一个元素,而不是在最后.我该怎么办?例如,如果我想要一个元素"2-a“,就像在下面的xml中一样,我做什么呢?

代码语言:javascript
运行
复制
<node-a>
    <node-1/>
    <node-2/>
    <node-2a/>
    <node-3/>
    <node-4/>
<node-a/>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-22 13:26:48

您可以使用insertBefore()

代码语言:javascript
运行
复制
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()

指纹:

代码语言:javascript
运行
复制
<node-a>
    <node-1/>
    <node-2/>
    <node-2a/>
    <node-3/>
    <node-4/>
</node-a>
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23220900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档