codeigniter 2.0到3.0 xml输出坏了

时间:2015-11-07 12:23:53

标签: php xml codeigniter codeigniter-restserver

从2.0迁移到CI 3.0后,我遇到了xml输出问题。我通过restserver在控制器上执行此代码:

$xml = $this->_toRss($q);
$this->response->format = 'xml';
$this->response($xml, 200 );

$ xml是一个SimpleXMLElement,我使用这样的代码创建和汇编:

$xmlRoot = new SimpleXMLElement("<rss/>");
$xml = $xmlRoot;
$xml->addAttribute("version", "1.0");

$channel = $xml->addChild("channel");
$channel->addChild("title", "My Company");
$channel->addChild("link", xml_convert($curURL));
$channel->addChild("description", "RSS feed");

此迁移的代码没有改变。

以下是处理2.0的响应示例: http://pastebin.com/JfNNJeH7

以下是3.0上的响应示例: http://pastebin.com/ubDCNnhD

1 个答案:

答案 0 :(得分:0)

这将在restserver上注册为错误,但这是一个解决方法,无论谁需要它:

$this->output->set_status_header(200);
$this->output->set_content_type('application/xml', strtolower($this->config->item('charset')));
$this->output->set_output($xml->asXML());