2013-06-05 6 views
-4

я могу сделать длинную строку (my_xml), как это:Разделить строку на несколько строк

elements = Element.objects.all() 
my_xml = '<?xml version="1.0" encoding="utf-8"?>\n' 
my_xml += 'description\n' 
my_xml += 'document title\n' 
my_xml += 'other_infos\n' 
for elt in elements: 
    my_xml += elt.title 
    my_xml += elt.desc 
return HttpResponse(my_xml) 

Есть еще один уборщик способ сделать это вместо того, чтобы повторять «my_xml +=» тег?

+0

вы случайно не б e используя webframework здесь (возможно, Django)? –

+1

-1 вы должны перепроектировать код. –

+2

Используйте многострочную строку - см. Http://stackoverflow.com/questions/2504411/proper-indentation-for-python-multiline-strings – Floris

ответ

0

Если вы хотите построить свою страницу таким образом, рассмотреть возможность использования (в соответствии с примером, приведенным в Proper indentation for Python multiline strings)

отредактирован, чтобы сделать xml линии показать на странице и сделать разрывы строк работы:

elements = Element.objects.all() 
my_xml = ('<html type=text/html encoding="utf-8">' 
    '&lt;?xml version="1.0" encoding="utf-8"?&gt;<br>' 
    'description<br>' 
    'document title<br>' 
    'other_infos<br>') 

for elt in elements: 
    my_xml += elt.title + '<br>' 
    my_xml += elt.desc + '<br>' 

my_xml += '</html>' 

return HttpResponse(my_xml) 
+0

. Это результат (без цикла): description document title other_infos. Похоже, что вы не знаете '<>' и новую строку '\ n'! – Drwhite

+0

если я использую шаблон и визуализирую my_xml, он знает мою строку, но без новой строки: S – Drwhite

+0

Замените ваш '\ n' на'
'и он создаст разрывы строк. – Floris

0

вы можете использовать список:

elements = Element.objects.all() 
xml_parts = [""" 
<?xml version="1.0" encoding="utf-8"?> 
description 
document title 
other_infos 
"""] 
for el in elements: 
    xml_parts.append(elt.title) 
    xml_parts.append(elt.desc) 
return HttpResponse(''.join(xml_parts)) 
Смежные вопросы