在名为“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”中更新,而不是在原始文件中
答案 0 :(得分:0)
因此,您已经达到了读取,解析和修改 xml文件的程度。缺少最后一步是保存文件,因为修改后的版本只存在于正在运行的进程的内存中。
with open("outfile.xml", "w") as f:
f.write(etree.tostring(xmlData))
这会将修改后的xml以漂亮的打印(缩进)格式写入 outfile.xml 。您可以使用包含原始文件名的变量替换" outfile.xml" 来覆盖原始文件。