如何在挂架中生成带有正确CGI标头的XML文件?

时间:2011-04-05 20:22:01

标签: xml cgi pylons

我正在尝试编写一个简单的pylons动作来生成一些xml。这是关于玩具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标题,但我找不到任何关于如何在pylons中执行此操作的文档。我该怎么办?

谢谢!

1 个答案:

答案 0 :(得分:1)

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

在导入部分添加:

from pylons import response

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

response.content_type = "text/xml"