我想用Python更新XML文件。在
我写了一个函数:
def updateXml(self, pathXml, elements):
tree = ET.parse(pathXml)
root = tree.getroot()
updateFile = False
for element in elements:
elementAlreadyExists = False
for child in root:
if child.attrib["name"] == element:
elementAlreadyExists = True
if elementAlreadyExists == False:
updateFile = True
ET.SubElement(root, "Test", {"name": element})
if updateFile == True:
tree.write(pathXml)
嗯,问题是,当我在Winodws(例如记事本)下打开文件时,文件看起来完全一样。。。文件根本没有更改。。。在
但是当我用另一个函数(readXml—由我自己编写,但是没有必要复制readXml的主体)来读取文件时,我可以看到更改。。。(我的意思是,当我把readXml()放在updateXml()的末尾时)。嗯,我想,当我写作的时候树.parse(),则xml文件仅在“r”模式下打开?我不知道如何处理这一点,这就是为什么我想变得更聪明,我想做下面的技巧(函数末尾的几行-那些操作系统删除()和shutil.复制()):
^{pr2}$不幸的是,它不起作用。。。pathXml下的Xml文件仍然是。。。相同的!怎么可能? 这里怎么了?这个xml.temp文件文件看起来不错。。。在
或者,你能不能告诉我,在“进口”的帮助下,怎么做xml.etree.ElementTree就像ET“写一个函数,它能更新xml文件吗?我会非常非常感谢:)
问候:-)
目前没有回答
相关问题 更多 >
编程相关推荐