Я пытаюсь проанализировать XML файл в python с помощью l xml .objectify, изменить текст из <ns:text>
и затем собрать обратно XML.
Это краткий обзор моего XML файла:
<ns:map xmlns:ns="...">
<ns:topics>
<ns:topic>
<ns:text>HI</ns:text>
</ns:topic>
<ns:topic>
<ns:text>HELLO</ns:text>
</ns:topic>
</ns:topics>
</ns:map>
Я проанализировал XML и получил топи c в темах. Я пытался изменить текст «HI» на «test» для <ns:text>
в первой топи c.
from lxml import objectify as obj
from lxml import etree
root= obj.parse(xmlFileName)
root.topics.topic[0].text = 'test'
obj_xml= etree.tostring(root, encoding="unicode", pretty_print=True)
print(obj_xml)
Я предполагал, что это будет результат:
<ns:map xmlns:ns="...">
<ns:topics>
<ns:topic>
<ns:text>test</ns:text>
</ns:topic>
<ns:topic>
<ns:text>HELLO</ns:text>
</ns:topic>
</ns:topics>
</ns:map>
но .text
является атрибутом только для чтения, а не моим <ns:text>
. Я не могу получить доступ к своему <ns:text>
, чтобы изменить текст.
Я читал много уроков с l xml .objectify, но не могу найти что-то похожее на мою проблему.
PS: я не могу изменить название разметки. Это сгенерированный XML.
Спасибо, Елена