您好我使用lxml尝试更改特定xml元素的值。这是我的代码。
directory = '/Users/eeamesX/work/data/expert/EFTlogs/20160725/IT'
XMLParser = etree.XMLParser(remove_blank_text=True)
for f in os.listdir(directory):
if f.endswith(".xml"):
xmlfile = directory + '/' + f
tree = etree.parse(xmlfile, parser=XMLParser)
root = tree.getroot()
hardwareRevisionNode = root.find(".//hardwareRevision")
if hardwareRevisionNode.text == "5":
print " "
print hardwareRevisionNode.text
str(hardwareRevisionNode.text) == "DVT3"
print hardwareRevisionNode.text
我想将5更改为DVT3而不是将其打印出来,如下5和5.我引用了Change xml using python。不幸的是,它对我不起作用。
答案 0 :(得分:2)
看起来您需要分配=
而非比较==
,并且不需要转换为字符串str()
。一旦你分配了值,你就会想要将结果写回文件:
hardwareRevisionNode.text = "DVT3"
outfile = open(xmlfile, 'w')
oufile.write(etree.tostring(tree))
outfile.close()
祝你好运!