2011-04-05 45 views
1

我想写一个简单的挂架行动来生成一些XML。这里的要点,玩具XML:如何生成带有适当CGI标头的XML文件?

class HelloController(BaseController): 
    def index(self): 
     my_xml = etree.Element("root") 
     etree.SubElement(root, "child1") 
     etree.SubElement(root, "child2") 
     etree.SubElement(root, "child3") 

     return '<?xml version="1.0" encoding="UTF-8"?>\n'+etree.tostring(my_xml, pretty_print=True) 

但是,当我在Firefox中显示这一点,这是一个乱码一团糟 - Firefox不尝试分析它为XML。

问题是(我认为)我没有附加适当的CGI标题,但我找不到任何有关如何在挂架上执行此操作的文档。我该怎么办?

谢谢!

回答

1

您需要返回声明响应内容类型的响应HTTP标头。在Pylons控制器中,您使用全局pylons.response(这是webob.Response的一个实例)对象。

在进口部分添加:

from pylons import response 

某处在你的控制器操作添加:

response.content_type = "text/xml" 
+0

完美!谢谢 – Abe 2011-04-06 13:50:20