是否可以删除文档根目录之前出现的lxml / libxml2元素而不复制整个树?

时间:2019-02-06 20:31:39

标签: python xml lxml

使用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?>'

但是要从文档中删除元素,必须包含一个父元素:

parent.remove(child)

显然,该处理指令元素没有父级。我可以对根进行深层复制,以获得没有先前同级的另一棵树,但这显然不是一个可取的解决方案。有谁知道不需要这种解释的解决方案,而在代码中不需要解释性注释? (将解释转移到函数名称将不算作答案。)

0 个答案:

没有答案