我正在尝试使用 lxml.objectify 解析 Python 中的 XML 文件,从中修改文本<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 并检索了主题中的主题。<ns:text>
我试图在第一个主题中将“HI”文本更改为“test” 。
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>
的来更改文本。
我一直在阅读很多关于 lxml.objectify 的教程,但我找不到与我的问题类似的东西。
PS:我无法更改标记的名称。这是一个生成的 XML。
谢谢你,埃琳娜