Создание XML с использованием CodeIgniter

Я использую этот код в 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);