【发布时间】:2016-08-26 17:51:24
【问题描述】:
我正在尝试写入 xml 文件。我已经更改了代码中的特定元素,并且能够成功打印它。我需要将其写入文件,而不更改文件的结构。
我的代码:
import os
from lxml import etree
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 "Old Tag: " + hardwareRevisionNode.text
x = hardwareRevisionNode.text = "DVT2"
print "New Tag " + hardwareRevisionNode.text
当我尝试打开和关闭文件的各种方法时,它只是删除了 xml 文件中的所有数据。使用这种方法
outfile = open(xmlfile, 'w')
oufile.write(etree.tostring(tree))
outfile.close()
将我的文件的代码结构更改为一长行。
【问题讨论】:
-
lxml 中有漂亮的打印机或压头。一个长字符串是完全有效的 xml。看到这个问题stackoverflow.com/questions/749796/…
标签: python xml lxml elementtree