-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 +=”标签?

4

2 回答 2

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))
于 2013-06-05T15:30:07.553 回答
0

如果您想以这种方式构建页面,请考虑使用(按照 Python 多行字符串的正确缩进中给出的示例)

编辑以使该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)
于 2013-06-05T12:03:05.823 回答