我正在尝试使用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 标签中创建多行文本。