我想在 ElementTree 中设置属性的命名空间以获得以下结果。
<test xmlns:ns="test"><test1 ns:name="item1" /></test>
我已经注册了命名空间。但是,我应该如何更改以下内容?
test1 = ET.SubElement(test, "test1", name="item1")
感谢您的帮助。
您必须
.set()
属性:
import xml.etree.ElementTree as ET
xml_string = """<?xml version="1.0" encoding="UTF-8"?>
<test xmlns:ns="test">
<test1 ns:name="item1" />
</test>"""
test = ET.fromstring(xml_string)
ET.register_namespace("ns","test")
test2 = ET.SubElement(test, "test2").set('{test}name', 'item2')
ET.indent(test, space = ' ')
ET.dump(test)
输出:
<test xmlns:ns="test">
<test1 ns:name="item1" />
<test2 ns:name="item2" />
</test>