如何获取ElementTree中XML元素的完整内容?
解决ElementTree获取元素内部完整XML内容的问题
你当前的代码只调用root.text,它只能获取元素第一个子节点之前的文本内容(这里就是<item>标签后的换行空白),所以无法得到预期结果。要获取元素内部所有子节点(包括子元素和中间的文本节点)的完整XML内容,需要遍历所有子节点并逐个序列化后拼接。
可行代码示例
import xml.etree.ElementTree as ET xml_content = """<?xml version="1.0" encoding="UTF-8"?> <item> <child>asd</child> hello world <ch>jkl</ch> </item>""" root = ET.fromstring(xml_content) # 遍历根元素的所有子节点,序列化后拼接成完整内部XML inner_xml = ''.join([ET.tostring(child, encoding='unicode') for child in root]) print(inner_xml)
代码说明
ET.tostring(child, encoding='unicode'):将每个子节点(无论是元素节点还是文本节点)转换为Unicode格式的XML字符串- 通过列表推导式遍历
root的所有子节点,再用''.join()拼接所有结果,就能得到你需要的内部完整内容
内容的提问来源于stack exchange,提问作者Alex DeStefano
相关产品推荐
相关产品推荐

