Codeigniter 2.0 до 3.0 xml выходной сигнал поврежден

1

После перехода на CI 3.0 из 2.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

Теги:
codeigniter
codeigniter-restserver

1 ответ

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню