2015-11-07 58 views
1

从2.0迁移到CI 3.0后,我遇到了xml输出的问题。我这样做,通过restserver与控制器上运行此代码:codeigniter 2.0到3.0 xml输出损坏

$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

回答

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());