Python更改XML的值

时间:2016-08-26 15:51:29

标签: python xml lxml

您好我使用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。不幸的是,它对我不起作用。

1 个答案:

答案 0 :(得分:2)

看起来您需要分配=而非比较==,并且不需要转换为字符串str()。一旦你分配了值,你就会想要将结果写回文件:

hardwareRevisionNode.text = "DVT3"

outfile = open(xmlfile, 'w')
oufile.write(etree.tostring(tree))
outfile.close()
祝你好运!