Python在使用etree时不编辑XML

时间:2013-04-26 02:20:24

标签: python xml

我正在使用XML文档来跟踪python中的用户信息。我在IDLE中做了一些测试,但由于某种原因,XML没有被编辑。我查看了所有的python文档,我根本找不到问题。这就是我输入的内容:

>>> import xml.etree.ElementTree as ET
>>> tree = ET.parse('./usrData.xml')
>>> root = tree.getroot()
>>> root.tag
meritTracker 

直到这一部分,一切正常。我知道它读了正确的文件,因为它显示了正确的标签。但那时:

>>>newElement = ET.Element('Name')
>>>ET.SubElement(root, newElement)
<Element <Element 'Name' at 0x1022119f0> at 0x102211a48>

XML Doc根本不会改变。 然后我重置了IDLE,并做了这个:

>>> import xml.etree.ElementTree as ET
>>> tree = ET.parse('./usrData.xml')
>>> root = tree.getroot()
>>> root.tag
meritTracker 
>>>newElement = ET.Element('Name')
>>>root.append(newElement)
>>>root.getchildren()

仍然没有。 然后我试了很长时间:

>>> file = open('./usrData.xml','r+')
>>> tree = ET.parse(file)
>>> root = tree.getroot()
>>> root.append(ET.Element('Name'))
>>> root.getchildren()
[<Element 'Name' at 0x101756680>]

但是,XML仍然没有改变!我怎样才能解决这个问题?

注意:我在Mac OS X 10.8上运行Python 3.3

1 个答案:

答案 0 :(得分:3)

您需要将输出写回文件:

tree.write('output.xml')