Python 可以删除出现在文档根之前的lxml/libxml2元素而不复制整个树吗?

Python 可以删除出现在文档根之前的lxml/libxml2元素而不复制整个树吗?,python,xml,lxml,Python,Xml,Lxml,使用lxml的API,可以通过查询根元素的同级(及其同级)来访问根元素之前的初步元素,例如处理指令和注释: >>> buffer = StringIO('<?xml version="1.0" ?><?PI foo?><root/>') >>> doc = etree.parse(buffer) >>> root = doc.getroot() >>> pi = root.getprevi

使用lxml的API,可以通过查询根元素的同级(及其同级)来访问根元素之前的初步元素,例如处理指令和注释:

>>> buffer = StringIO('<?xml version="1.0" ?><?PI foo?><root/>')
>>> doc = etree.parse(buffer)
>>> root = doc.getroot()
>>> pi = root.getprevious()
>>> str(pi)
'<?PI foo?>'

显然,没有可用于该处理指令元素的父元素。我可以深度复制根以获得另一棵树,而不需要以前的同级树,但这显然不是一个更好的解决方案。是否有人知道一种解决方案可以实现这样的删除,而不需要在代码中添加解释性注释?(将解释转换为函数名不算作答案。)

您可以将文件作为数据文件而不是xml文件处理,然后删除所需的标记并最终存储新文件。您可以将文件作为数据文件而不是xml文件处理,然后删除所需的标记并最终存储新文件。
parent.remove(child)