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

2024-01-10

我正在使用 ElementTree 生成一些 HTML,但遇到了 ElementTree 不将文本存储为节点,而是存储为text and tail的属性Element。如果我想生成需要多个文本节点的内容,这就是一个问题,例如:

<a>text1 <b>text2</b> text3 <b>text4</b> text5</a>

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


生成上面的字符串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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python ElementTree 中的多个文本节点? HTML 生成 的相关文章

随机推荐