源代码:我有以下程序。
import genshi
from genshi.template import MarkupTemplate
html = '''
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://genshi.edgewall.org/">
<head>
</head>
<body>
<py:for each="i in range(3)">
<py:choose>
<del py:when="i == 1">
${i}
</del>
<py:otherwise>
${i}
</py:otherwise>
</py:choose>
</py:for>
</body>
</html>
'''
template = MarkupTemplate(html)
stream = template.generate()
html = stream.render('html')
print(html)预期输出:数字是连续打印的,它们之间没有空格(最重要的是没有换行)。
<html>
<head>
</head>
<body>
0<del>1</del>2
</body>
</html>实际输出:输出如下:
<html>
<head>
</head>
<body>
0
<del>1</del>
2
</body>
</html>问题:如何消除断行?我可以通过从最后的HTML中去掉它来处理前面的空格,但是我不知道如何去掉换行符。我需要将for循环的内容显示为一个连续的"word“(例如,012而不是0 \n 1 \n 2)。
我尝试过的:
<?python ...code... ?>代码块。这不起作用,因为<del>标记中的插入符号是转义的,displayed.Produces 0<del>1</del>2我也尝试过这样做,但是使用genshi.builder.Element('del')代替了。结果是相同的,我能够确定numbers()返回的字符串是在返回发生后转义的。发布于 2018-11-12 17:53:22
不太理想,但我终于找到了一个可以接受的解决方案。诀窍是将给定标记的结束插入符放在下一行的下一行开始插入符号之前。
<body>
<py:for each="i in range(3)"
><py:choose
><del py:when="i == 1">${i}</del
><py:otherwise>${i}</py:otherwise
></py:choose
</py:for>
</body>来源:https://css-tricks.com/fighting-the-space-between-inline-block-elements/
如果有人有更好的方法,我很想听听。
https://stackoverflow.com/questions/53176085
复制相似问题