如何在长的多行字符串中添加换行符?

Posted

技术标签:

【中文标题】如何在长的多行字符串中添加换行符?【英文标题】:How to add a newline to a long multi-line string? 【发布时间】:2013-06-01 03:59:07 【问题描述】:

我有一个这样的字符串:

my_xml = '''
        <?xml version="1.0" encoding="utf-8" ?> \n
        <entries> \n
        <entry>1</entry> \n 
        <entry>2</entry> \n
        </entries>
    '''
return HttpResponse(my_xml)

这是我的输出,打印时没有换行,也没有 xml 标签:

1 2 

我们如何在 Python 中添加换行符并制作浏览器解释器 xml 标签并打印它们?

【问题讨论】:

由于 Martijn Pieters 在他的回答中没有涵盖这方面:\n 是如何在 Python 中编写换行符。也就是说,您所写的是正确的,如果换行符实际上是您在这些位置所需要的。 @kampu:三重引号 also 添加了换行符。 s 示例字符串总共有 4 个换行符。 这可能是s 是正确的并且具有正确的新行数,但是一旦它返回为HttpResponse(s),它就会显示不正确。 @oleg:完全正确;浏览器将其显示为 html .. 【参考方案1】:

您正在浏览器中查看输出; HTML 浏览器考虑换行符空白,将连续的空白字符折叠成一个空格。

您的浏览器将响应解释为 HTML 格式的数据,请改用 &lt;br/&gt; 标签:

s = """ this is line 1<br/>
    this is line 2<br/>
    and other lines ..."""

如果您希望只看到换行符,请查看响应 source 代码;换行符就在那里。

如果您想在浏览器中查看 XML 输出,您应该设置内容类型标头 (text/xml),以便浏览器知道您发送的是 XML 而不是 HTML:

return HttpResponse(s, content_type='text/xml')  # Assumes you are using Django

您的浏览器将使用默认样式表来显示 XML 数据(通常作为具有可折叠部分的树)。您可以使用 XML 样式表 (XSLT) 来覆盖该行为。添加样式表头:

<?xml-stylesheet type="text/xsl" href="script.xsl" ?>

浏览器将获取命名的样式表并将其应用到您的 XML。

【讨论】:

@Drwhite:抱歉,我似乎无法解析你想说的话。 @Drwhite:这就是浏览器所做的;它解释 HTML 标签以形成格式化的文本。 &lt;br/&gt; 是用于换行的 HTML 标记。 @kirelagin:XHTML 习惯很难改掉。对于直接的 HTML,两者都可以。 Err... ...您的意思是要按字面意思显示 HTML 标记吗?您需要对字符串进行 HTML 转义。***.com/questions/1061697/… @Drwhite:您想设置内容类型标头(text/xml),显示 XML 的浏览器通常会将其格式化为树。你对浏览器如何显示你的输出有问题,而不是 Python 换行符。

以上是关于如何在长的多行字符串中添加换行符?的主要内容,如果未能解决你的问题,请参考以下文章

python使用textwrap包在已经生成的长字符串中嵌入回车符实战

php如何在长字符串中加换行符,以达到强制换行目的

如何在 RAML 的描述文件中创建换行符?

wordwrap 一个很长的字符串

有没有一种简单的方法可以将多行文本连接成一个字符串,而无需不断添加换行符?

使用Excel VBA调整列表框以显示比列表框宽度更长的字符串