Python lxml创建不同的分叉

2024-06-26 14:57:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用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')

Tags: 目的truetreeparserprettyxmllxmlutf
1条回答
网友
1楼 · 发布于 2024-06-26 14:57:33

问题是tree1tree2是同一个对象(指向内存中的同一个对象)。因此,在不修改另一个变量的情况下,不能修改一个变量。例如:

print tree1 == tree2  # True
print tree1 is tree2  # True

也许您可以先保存tree2而不修改它,然后通过修改保存tree1。或者使用复制功能创建两个不同的对象

相关问题 更多 >