1

从 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

4

1 回答 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());
于 2015-11-07T18:03:30.683 回答