Я использую этот код в Codeigniter для генерации XML:
public function get_cuisine() { $this->load->dbutil(); $sql = "select * from cuisine"; $query = $this->db->query($sql); $config = array ( 'root' => 'root', 'element' => 'element', 'newline' => "\n", 'tab' => "\t" ); echo $this->dbutil->xml_from_result($query, $config); }
Но это показывает общий формат печати. Как я могу показать его как страницу типа XML?
Вам нужно будет установить заголовки XML, если вы хотите напрямую вывести файл:
Использование класса Codeigniter Output :
$xml = $this->dbutil->xml_from_result($query, $config); $this->output->set_content_type('text/xml'); $this->output->set_output($xml);
Или вы можете использовать простой PHP для настройки заголовков :
header('Content-type: text/xml'); echo $this->dbutil->xml_from_result($query, $config);
Или вы можете использовать помощник загрузки CI:
$xml = $this->dbutil->xml_from_result($query, $config); $this->load->helper('download'); force_download('myfile.xml', $xml);
Или напишите его в файл с помощью вспомогательного файла :
$xml = $this->dbutil->xml_from_result($query, $config); $this->load->helper('file'); $file_name = '/path/to/myfile.xml'; write_file($file_name, $xml); // Optionally redirect to the file you (hopefully) just created redirect($file_name);
У меня был тот же вопрос. Я погубил его. Нашел это решение. И он отлично работает для меня. Нажмите здесь, чтобы получить исходный код
Просто скачайте и распакуйте (извлеките его)
Затем скопируйте xml_writer.php в приложения-> библиотеки извлеченной папки в папку ваших библиотек в проекте Codeigniter.
Также скопируйте xml.php в контроллере application-> в папку контроллеров
Наконец, скопируйте xml.php в представлениях извлеченной папки в ваше представление и запустите ее.
Это оно…
Пользовательское решение:
$mysql_data = $this->db->get('products') ->result_array(); $xml = '<root>'; foreach($mysql_data as $row){ $xml .= '<item> <name>'.$row['title'].'</name> <price>'.$row['price'].'</price> <image>'.$row['pic'].'</image> </item>'; } $xml .= '</root>'; $this->output->set_content_type('text/xml'); $this->output->set_output($xml);