2011-04-05 89 views
-2

我知道有这个几个线程,但我不能找到我做错了。 这是示数的代码:如何在python中强制下载xml?

print 'Content-Type: text/xml \n' 
    print 'Content-Disposition:attachment;filename="test.qwc" \n' 
    print 'Content-Length:' + len(xml) 
    print xml 

XML变量是简单XML字符串。 XML很好,因为我可以将它打印到浏览器中。但是当我添加Content-Disposition和Content-Length行时,它给了我这个错误:

XML Parsing Error: not well-formed 
    Location: http:/myurl/XMLqwc.py?franchiseid=1 
    Line Number 1, Column 31: 
    Content-Disposition:attachment;filename="test.qwc" 
    ------------------------------^ 

任何想法? 在此先感谢您的帮助!

+1

什么是“它”那是给你一个错误? – drysdam 2011-04-05 17:02:10

+0

与标题或标签中的问题相关的唯一单词是“python”。 – 2011-04-05 17:46:38

回答

2

头和有效载荷必须由空行被始终分开。内容长度标题行甚至不包含换行符......此外,向字符串添加整数(len()..)看起来很奇怪。

4
  1. 这不能是您用来提供XML的代码,因为"string" + len(whatever)保证是一个例外。
  2. 要将两个新行,而不是一个给每个标题行,所以你的头将只包含第一行。标题和正文由两个换行符分隔,您将两个换行符放在第一个标题后面。其余的去XML。
  3. 我不会为任何东西,但简单的文本格式使用print。 HTTP并不那么简单(请参阅3),您应该使用sys.stdout.write()代替。
  4. 有几十web frameworks for Python。你应该考虑他们。其中一些非常简单,比如Werkzeug和web.py.