【发布时间】:2010-01-27 22:37:21
【问题描述】:
像这样使用lxml.objectify:
from lxml import objectify
o = objectify.fromstring("<a><b atr='someatr'>oldtext</b></a>")
o.b = 'newtext'
导致<a><b>newtext</b></a>,丢失节点属性。它似乎是直接用新创建的元素替换元素,而不是简单地替换元素的文本。
如果我尝试使用o.b.text = 'newtext',它会告诉我
attribute 'text' of 'StringElement' objects is not writable.
有没有办法在 objectify 中做到这一点,而不必将其拆分为不同的元素并涉及 etree?我只是想替换内部文本,同时不理会节点的其余部分。我觉得我在这里遗漏了一些简单的东西。
【问题讨论】: