【发布时间】:2017-06-07 14:53:49
【问题描述】:
是否可以用 python 的 lxml 注释掉一个 xml 元素,同时保留注释中的原始元素呈现?我尝试了以下
elem.getparent().replace(elem, etree.Comment(etree.tostring(elem, pretty_print=True)))
但是tostring() 添加了命名空间声明。
【问题讨论】:
-
什么命名空间声明?请提供minimal reproducible example。
-
mzjn: xmlns="foo" 等。在原始 xml 中,这些声明是从根元素继承的,并且没有显式地存在于子元素中。 tostring() 当然不知道。
-
好的,我明白了。但我仍然认为请求一个完整的例子来说明问题是合理的。现在我在回答中提供了一个例子。