如何用Python ElementTree实现父标签内嵌文本与子标签的混合结构?
解决ElementTree父标签内子元素前后添加文本的问题
在xml.etree.ElementTree中,元素的text属性对应该元素第一个子节点之前的文本,而子元素的tail属性对应该子元素之后的文本。你之前的错误是重新赋值b1.text覆盖了前导文本,同时没利用tail属性设置尾随文本。
正确代码示例
import xml.etree.ElementTree as ET root = ET.Element("root") b1 = ET.SubElement(root, "parent") # 设置父元素第一个子节点前的文本 b1.text = "Make from " b2 = ET.SubElement(b1, "child") b2.text = "12345678" # 设置子元素之后的尾随文本 b2.tail = " this part" tree = ET.ElementTree(root) # 打印验证结果 ET.dump(tree)
运行结果
执行后会生成你需要的XML结构:
<root> <parent>Make from <child>12345678</child> this part</parent> </root>
补充说明
如果父元素包含多个子元素,每个子元素的tail属性都可以独立设置它后面的文本,以此实现更复杂的文本与标签混合结构。
内容的提问来源于stack exchange,提问作者Melwin
相关产品推荐
相关产品推荐

