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

Python中移除etree.fromstring生成的XML根元素问题

解决lxml移除XML根元素并输出子元素内容的问题

你遇到的问题是因为getchildren()返回的是元素列表,而etree.tostring()只能接收单个_Element对象,直接传递列表会触发类型错误。要输出根元素的所有子元素内容,你可以遍历根的子元素,逐个序列化后拼接起来。

正确实现代码

from lxml import etree

content = "<data> <element_1>element-1</element_1> <element_2>element-2</element_2> </data>"
# 解析带根元素的XML
root = etree.fromstring(content)

# 遍历根的所有子元素,逐个转为字符串后拼接
output = ''.join([etree.tostring(child, encoding='unicode') for child in root])
print(output)

代码说明

  1. 遍历子元素:直接遍历根元素root即可获取所有子元素(getchildren()在lxml新版本中已被标记为过时,推荐直接迭代根元素)。
  2. 序列化单个元素:对每个子元素调用etree.tostring(),指定encoding='unicode'可直接返回字符串;若需要字节流可去掉该参数。
  3. 拼接结果:用join()将所有子元素的XML字符串拼接成最终输出。

输出结果

<element_1>element-1</element_1> <element_2>element-2</element_2>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 15:47:03