用Python修改XML文件

时间:2014-09-18 07:18:24

标签: python xml

我对Python很陌生。我需要修改现有的XML文件\

<root>
   <child1></child1>
   <child2></child2>
</root>

我需要补充一下 在child2之后。内容将来自newchild的文本文件 对于Eg: thiscamefromtextfile

脚本

之后
    <root>
       <child1></child1>
       <child2></child2>
       <newchild>thiscamefromtextfile</newchild>
    </root>

我该怎么做? 感谢

2 个答案:

答案 0 :(得分:0)

要将子项添加到现有节点,请使用append()

这样的事情:

import xml.etree.ElementTree as ET

# get the root element
tree = ET.parse('some.xml')
root = tree.getroot()

elem = ET.Element('newchild')
elem.text = 'thiscamefromtextfile'
root.append(elem) # append to root or any other node, as you want

tree.write('some.xml')

在此之后检查some.xml文件时,您将在child2

之后拥有新节点

<强>输出

<root>
   <child1 />
   <child2 />
   <newchild>thiscamefromtextfile</newchild>
</root>

答案 1 :(得分:0)

import xml.etree.ElementTree as et

data = """<root>
   <child1></child1>
   <child2></child2>
</root>"""

root = et.fromstring(data)

# create the new element and set the text
element = et.Element('newchild')
element.text = 'thiscamefromtextfile'

# add the element to the root node
root.append(element)

print(et.tostring(root, encoding='unicode'))

另一种方式看起来像这样。

root = et.fromstring(data)
element = et.SubElement(root, 'newchild')
element.text = 'thiscamefromtextfile'

结果如下所示。

<root>
   <child1 />
   <child2 />
<newchild>thiscamefromtextfile</newchild></root>