2

一个名为“ini”的文件夹中有很多文件,我必须搜索一个具有属性名称的文件并编辑它的值,我试过这个代码: -

import os, glob
from lxml import etree

for filename in glob.glob("./ini/*.xml"):

    xmlData = etree.parse(filename)

    for msg in xmlData.findall("//Value"):
        name = msg.attrib["name"]
        init = msg.attrib["initValue"]
        if name == "attribute name" :
            msg.set("initValue", "0")
            print msg.get('name'), msg.get('initValue')
            print msg.attrib
            print name, init
            print filename

该值仅在“msg”中更新,而不是在原始文件中

4

1 回答 1

0

至此,您已经阅读解析修改了 xml 文件。缺少最后一步是保存文件,因为修改后的版本只存在于正在运行的进程的内存中。

with open("outfile.xml", "w") as f:
    f.write(etree.tostring(xmlData))

这将以漂亮的打印(缩进)格式将修改后的 xml 写入outfile.xml。您将能够通过将“outfile.xml”替换为包含原始文件名的变量来覆盖原始文件。

于 2012-12-07T06:14:24.837 回答