2015-11-07 60 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());