使用 Python 生成 html 时如何附加多个文本行后跟单个<br>标签



我正在尝试使用Python的py._xmlgen的html类生成一个html对象。在这个html中,我想在每行文本之后放置一个

问题是在运行此代码时

from py._xmlgen import html
if __name__ == '__main__':
br_standalone = html.br('some text between br tags')
div_standalone = html.div('some more text between div tags')
print(br_standalone)
print(div_standalone)
div_with_br = div_standalone
div_with_br.append(br_standalone)
print(div_with_br)

我得到这个输出:

<br>some text between br tags</br>
<div>some more text between div tags</div>
<div>some more text between div tags<br>some text between br tags</br></div>

如果您将"运行代码片段"并检查下面的结果 html,您将看到结束也呈现为第 2 行分隔符。因此,对于每个 html.br,我都会得到 2 个换行符,而不是一个换行符。

如何让输出对我使用的每个 html.br 只有一个 br 标签?

感谢user3080953的评论:"br标签不应该包含内容",我修改了代码。

为了在文本后获得单个 br 标签,请使用以下空标签:

br_standalone = html.br()

因此,当使用以下代码时:

from py._xmlgen import html
if __name__ == '__main__':
div1 = html.div(class_='multiline_div')
div1.append('text line #1')
div1.append(html.br())
div1.append('text line #2')
div1.append(html.br())
print(div1)

我得到了以下 html:

<div class="multiline_div">
text line #1<br/>
text line #2<br/>
</div>

请注意此处的另一个发现,您还可以附加到 html.div 纯文本,然后附加 br 标签,以在div 标签中创建多行文本。

最新更新