У меня есть xml
, который я проанализировал с помощью объективизации из вывода API, и я называю его переменной «result». Теперь я хочу o сохранить объект, но только изменить текстовый файл и вернуть его API для обновления элемента.Python lxml изменить xml объект дочерний текстовый атрибут
<field xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="multi_text_area">
<id>1754</id>
<name>Devices under maintenance</name>
<read_only>false</read_only>
<text_area>
<text>defwhanld12x</text>
</text_area>
</field>
Когда я пытаюсь изменить текст, я получаю, как это, я получаю сообщение об ошибке:
result.text_area.text = 'This is a test'
TypeError: attribute 'text' of 'ObjectifiedElement' objects is not writable
Я также попытался раздеть элемент и воссоздать его в качестве документации lxml
говорит, что вы не можете изменить объект.
etree.strip_elements(result, 'text')
etree.SubElement(result.text_area, 'text').text = 'This is just a test'
Но получить подобную ошибку:
TypeError: attribute 'text' of 'StringElement' objects is not writable
Спасибо большое, что сработало! Но мой ответ выглядит как '<поле Xmlns: XSI = "http://www.w3.org/2001/XMLSchema-instance" XSI: тип = "multi_text_area"> Устройство по обслуживанию ложного <текст XMLNS: ру = "http://codespeak.net/lxml/objectify/pytype" ру: pytype = "ул"> Это тест 'Я пытался лишить его подальше с 'etree.cleanup_namespaces (field.text_area ['text'])' , но это не сработало. –
Empusas
@Empusas см. ** ОБНОВЛЕНИЕ ** раздел выше .. – har07