我试图使用lxml打开一个xml文件,编辑xml,然后保存不同的版本,但我无法让它工作。第一次保存的目的是删除节,但第二次保存的目的是保留节,当前“保存1”正确删除节,但“保存2”也正确删除节,即保留节。我做错了什么?下面是一个代码示例:
from lxml import etree
parser = etree.XMLParser(remove_blank_text=True)
tree = etree.parse(pathToXmlFile, parser)
root = tree.getroot()
etree1 = etree
tree1 = tree
etree1.strip_elements(tree1, 'products')
tree1.write(pathToXmlFileOut1, pretty_print = True, xml_declaration = True, encoding = 'UTF-8')
etree2 = etree
tree2 = tree
tree2.write(pathToXmlFileOut2, pretty_print = True, xml_declaration = True, encoding = 'UTF-8')
问题是
tree1
和tree2
是同一个对象(指向内存中的同一个对象)。因此,在不修改另一个变量的情况下,不能修改一个变量。例如:也许您可以先保存
tree2
而不修改它,然后通过修改保存tree1
。或者使用复制功能创建两个不同的对象相关问题 更多 >
编程相关推荐