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
。
別の要素に分割したり、etreeを使用したりせずに、objectify内でこれを行う方法はありますか?ノードの残りの部分をそのままにして、内部テキストを置き換えたいだけです。ここで簡単なものが欠けているような気がします。