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

标签 python elementtree html-generation

我正在使用 ElementTree 生成一些 HTML,但我遇到了一个问题,即 ElementTree 不将文本存储为节点,而是作为 texttail 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>

关于python - Python 的 ElementTree 中的多个文本节点? HTML生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3145015/

相关文章:

python - 如何在python中顺序合并列表中的元素

python - 识别 Pandas 数据框中并发事件的简单方法

xml - 使用 python ElementTree 从 xml 获取命名空间

python - XML 解析 : Element Tree (etree) vs. minidom

c# - 可用于帮助生成 HTML 的工具/SDK 有哪些?

javascript - Summernote 文本编辑器无法在生成 html 的简单 Bootstrap 页面中工作

python - 为什么 "if not a := say_empty()"会引发 SyntaxError?

python - 在Python中解析没有 'root'节点的XML文件

python - 将 zlib 压缩的 utf8 数据写入文件