Использование 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
.
Есть ли способ сделать это в пределах объекта, не разбивая его на другой элемент и не вовлекая его Я просто хочу заменить внутренний текст, оставив остальную часть узла в покое. Я чувствую, что упускаю что-то простое здесь.