You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python 3 ElementTree创建含多个命名空间的XML文档?

解决ElementTree添加多个命名空间的问题

我懂你这种困惑——ElementTree处理XML命名空间的时候,刚开始确实容易摸不清门道,尤其是要一次性给根元素加多个命名空间声明和schemaLocation属性的时候。其实方法很简单,你只需要多次调用set()方法就行,它支持给元素添加任意数量的属性,包括多个xmlns声明。

给你调整后的完整代码:

import xml.etree.ElementTree as ET

# 创建带fu01前缀的根元素
top = ET.Element("fu01:Page")
# 添加xmlns:xsi命名空间
top.set("xmlns:xsi", "website1")
# 添加xmlns:fu01命名空间(指定前缀对应的URI)
top.set("xmlns:fu01", "website2")
# 添加xsi:schemaLocation属性
top.set("xsi:schemaLocation", "website3")

# 打印输出验证结果
ET.dump(top)

运行这段代码后,你会得到想要的XML结构:

<fu01:Page xmlns:xsi="website1" xmlns:fu01="website2" xsi:schemaLocation="website3" />

这里补充个小细节:如果之后你要给子元素使用fu01这个命名空间,建议提前注册前缀,避免ElementTree自动把前缀替换成ns0这类默认值,注册方法是:

ET.register_namespace('fu01', 'website2')

这样后续生成的XML里,所有使用该命名空间的元素都会保留fu01前缀,不会出现奇怪的自动替换。

内容的提问来源于stack exchange,提问作者Fred_Alb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:06:10