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

如何使用Python LXML为XML根元素添加命名空间前缀?

解决LXML生成带命名空间前缀的XML根元素问题

要让根元素QSPart带上qsp:前缀,核心是让根元素明确归入指定的命名空间,而不只是声明命名空间。你的原代码仅在根元素上声明了命名空间,但根元素本身不属于该命名空间,因此LXML不会为它添加前缀。

修改后的代码

from lxml import etree

nsmap = {'qsp': 'urn:qvalent:quicksuper:gateway'}
ns_uri = nsmap['qsp']

# 根元素通过etree.QName指定所属命名空间
QSPart = etree.Element(etree.QName(ns_uri, 'QSPart'), nsmap=nsmap)
MemberRegistrationRequest = etree.SubElement(QSPart, etree.QName(ns_uri, 'MemberRegistrationRequest'))

print(etree.tostring(QSPart, pretty_print=True, encoding=str))

运行结果

<qsp:QSPart xmlns:qsp="urn:qvalent:quicksuper:gateway">
  <qsp:MemberRegistrationRequest/>
</qsp:QSPart>

关键说明

  • 使用etree.QName(命名空间URI, 元素名)的方式创建元素,能明确将元素归入对应命名空间
  • LXML会自动为属于该命名空间的元素匹配你在nsmap中定义的前缀qsp

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 00:35:28