python -
使用Python生成html时如何附加多个文本行后跟单个标记
问题描述
我正在尝试使用 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,您会看到关闭也呈现为第二个换行符。因此,对于每个 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 标签内创建多行文本。
推荐阅读
- reactjs - 观察者全局变量 reactjs
- php - PHP 使用 Ajax 传递 JSON 数据以进行 inArray() 比较
- java - 返回测试中的预期值列表
- javascript - 使用 JavaScript 检查字符串中的 JSON 值
- docker - 当单个图像的行为不同(网络/工作者)时,在 docker 图像中启动进程的最佳实践是什么
- node.js - AppEngine nodejs 应用偶尔发送 502 并重启
- reactjs - 你如何从内部关闭块?
- c# - C# Invoke child form 随机挂起应用程序
- javascript - 如何有条件地计算对象中的元素数量?
- java - 如何更新部分 BufferedImage 并用 javafx 显示