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

Python生成XML时闭合标签带属性的问题如何解决?

解决ElementTree生成带属性XML标签的闭合标签错误问题

错误原因分析

  1. 若将属性直接拼接到标签名(如'Item lineNumber="1"'),会导致ElementTree把整个字符串当作标签名,生成错误的闭合标签</Item lineNumber="1">。
  2. 直接传字符串作为属性参数会触发TypeError,因为ET.SubElement的第三个参数要求是字典类型,而非字符串。

正确代码写法

使用字典传递属性键值对,ElementTree会自动生成正确的带属性起始标签和纯净的闭合标签:

import xml.etree.ElementTree as ET

# 父元素示例(根据你的实际代码替换)
element0items = ET.Element("Items")

# 正确创建带lineNumber属性的<Item>子元素
element0itemline1 = ET.SubElement(element0items, 'Item', {'lineNumber': '1'})

# 验证输出(可选)
ET.dump(element0items)

输出效果

生成的XML片段为:

<Items>
  <Item lineNumber="1"></Item>
</Items>

闭合标签是符合要求的</Item>,不会携带任何属性。

额外说明

如果属性值包含特殊字符(如引号),无需手动转义(比如不用写&quot;),ElementTree会自动处理转义逻辑,确保XML格式合法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 04:05:07