我找到了答案。我可以这样访问和更改我的文本:
我正试图用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>
但是CCD_ 3是只读属性而不是我的CCD_。我无法访问我的<ns:text>
来更改文本。
我已经阅读了很多关于lxml.objectify的教程,但我找不到与我的问题类似的东西。
PS:我无法更改标记的名称。这是一个生成的XML。
谢谢,Elena
root.topics.topic[0]["text"] = "test"