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

如何使用lxml移除元素文本并将其转为自闭合空标签?

解决XML空元素自闭合标签问题

你当前的代码已经完成了将文本内容转为属性的操作,最终输出<elem value="1"></elem>而非自闭合标签的原因在于XML序列化的配置。

如果使用的是lxml库,只需在输出XML时添加short_empty_elements=True参数即可实现自闭合标签:

from lxml import etree

# 假设doc是你的XML文档对象
for elem in doc.xpath("//elem"):
    elem.attrib["value"] = elem.text
    elem.text = ''

# 生成输出时指定参数
result = etree.tostring(doc, encoding='utf-8', method='xml', short_empty_elements=True)
print(result.decode('utf-8'))

如果用的是Python标准库的xml.etree.ElementTree,该库默认不支持输出自闭合标签,建议改用lxml库来实现需求,或者手动对输出文本进行替换(不推荐,容易破坏XML结构)。

内容的提问来源于stack exchange,提问作者Bálint Sass

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 07:22:04