Python的ElementTree中有多个文本节点?HTML生成

Rob*_*ens 9 python elementtree html-generation

我正在使用ElementTree生成一些HTML,但我遇到的问题是ElementTree不将文本存储为Node,而是作为text和的tail属性Element.如果我想生成需要多个文本节点的东西,这是一个问题,例如:

<a>text1 <b>text2</b> text3 <b>text4</b> text5</a>
Run Code Online (Sandbox Code Playgroud)

据我所知,没有办法产生这个 - 我错过了什么吗?或者,有没有更好的解决方案在Python中快速简单地生成HTML?

And*_*Cox 12

要生成上述字符串,ElementTree可以使用以下代码.这样做的诀窍在于,它text是下一个元素之前的第一批文本,tail而是元素之后的所有文本,直到下一个元素.

import xml.etree.ElementTree as ET
root = ET.Element("a")
root.text = 'text1 ' #First Text in the Element a
b = ET.SubElement(root, "b")
b.text = 'text2' #Text in the first b
b.tail = ' text3 ' #Text immediately after the first b but before the second
b = ET.SubElement(root, "b")
b.text = 'text4'
b.tail = ' text5'
print ET.tostring(root)
#This prints <a>text1 <b>text2</b> text3 <b>text4</b> text5</a>
Run Code Online (Sandbox Code Playgroud)