Вопрос по xml, codeigniter, php – Создание XML с использованием CodeIgniter

8

Я использую этот код в Codeigniter для генерации XML:

<code>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);   
}   
</code>

Но это показывает общий формат печати. Как я могу сделать так, чтобы он отображался как страница типа XML?

Ваш Ответ

3   ответа
16

Вам нужно установить заголовки XML, если вы хотите вывести файл напрямую:

Использование CodeigniterВыходной класс:

$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); 
Не могли бы вы немного подробнее рассказать о $ file_name = & apos; /path/to/myfile.xml&apos ;; мой путь к файлу - $ file_name = base_url («application / controllers / test.xml»); Я думаю, проблема в $ file_name.
@Shiplu использует полный путь к файлу сервера, а не URL вашего сайта.
2

У меня тоже был такой же вопрос. Я гуглил это. Нашел это решение. И это прекрасно работает для меня. Нажмите здесь, чтобы получить исходный код

Просто скачайте и распакуйте (распакуйте его)

Затем скопируйтеxml_writer.php в application-> gt; библиотеки извлеченной папки в вашу папку библиотек в вашем проекте Codeigniter.

Также скопируйтеxml.php в приложении -> контроллер в папке ваших контроллеров

Наконец скопируйтеxml.php в представлении извлеченной папки в ваш вид и запустите его ..

Вот и все ...

0

Индивидуальное решение:

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

Похожие вопросы