2011-04-05 41 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.