2013-06-05 79 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

你碰巧到b在這裏使用網絡框架(Django也許)? –

+1

-1你應該重新設計你的代碼。 –

+2

使用multilne字符串 - 請參閱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

這是輸出(沒有for循環):描述文檔標題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))