如何为xml.etree ElementTree的属性设置命名空间?
问题:ElementTree中为属性添加命名空间以生成指定XML
想要生成的XML结果:
<test xmlns:ns="test"><test1 ns:name="item1" /></test>
已完成命名空间注册,需修改以下代码:
test1 = ET.SubElement(test, "test1", name="item1")
解决方案
修改属性参数的写法,使用命名空间URI包裹属性名的格式作为键:
test1 = ET.SubElement(test, "test1", {"{test}name": "item1"})
说明
由于你已经通过ET.register_namespace('ns', 'test')完成了ns前缀与test命名空间URI的映射注册,ElementTree在序列化XML时,会自动将{test}name转换为你指定的前缀形式ns:name,最终生成符合要求的XML结构。
内容的提问来源于stack exchange,提问作者Mahyar Esteki
相关产品推荐
相关产品推荐

