Vous regardez la sortie dans un navigateur; Les navigateurs HTML prennent en compte les espaces de début de ligne, en regroupant les caractères d'espaces successifs pour former un espace.
Votre navigateur interprète la réponse sous forme de données au format HTML, utilisez <br/>
tags à la place:
s = """ this is line 1<br/>
this is line 2<br/>
and other lines ..."""
Si vous vous attendiez à voir seulement les nouvelles lignes, regardez la réponse la source code au lieu; les nouvelles lignes sont là.
Si vous voulez voir la sortie XML dans un navigateur, vous devez définir un en-tête de type de contenu (text/xml
) de sorte que le navigateur sait que vous envoyez XML au lieu de HTML:
return HttpResponse(s, content_type='text/xml') # Assumes you are using Django
Votre navigateur utilisera par défaut feuille de style pour afficher les données XML (généralement sous forme d'arborescence avec des sections réductibles). Vous pouvez utiliser une feuille de style XML (XSLT) pour remplacer ce comportement. Ajouter un en-tête de feuille de style:
<?xml-stylesheet type="text/xsl" href="script.xsl" ?>
le navigateur va chercher la feuille de style nommé et l'appliquer à votre XML.
Puisque Martijn Pieters n'a pas couvert cet aspect dans sa réponse: '\ n' est comment écrire un caractère de nouvelle ligne dans Python. C'est-à-dire, ce que vous avez écrit est correct, si un caractère de nouvelle ligne est réellement ce dont vous avez besoin dans ces endroits. – kampu
@kampu: la triple-citation * aussi * ajoute des retours à la ligne. L'exemple de chaîne 's' comporte au total 4 caractères de nouvelle ligne. –
cela pourrait-il être que 's' est correct et a le nombre correct de nouvelles lignes, mais dès qu'il est retourné comme' HttpResponse (s) 'il s'est affiché incorrectement. – oleg