Creazione XML mediante CodeIgniter

Sto usando questo codice in Codeigniter per generare XML:

public function get_cuisine() { $this->load->dbutil(); $sql = "select * from cuisine"; $query = $this->db->query($sql); $config = arrays ( 'root' => 'root', 'element' => 'element', 'newline' => "\n", 'tab' => "\t" ); echo $this->dbutil->xml_from_result($query, $config); } 

Ma questo mostra il formato di printing generale. Come posso farlo mostrare come una pagina di tipo XML?

È necessario impostare le intestazioni XML se si desidera submit direttamente il file:

Utilizzando la class di output Codeigniter:

 $xml = $this->dbutil->xml_from_result($query, $config); $this->output->set_content_type('text/xml'); $this->output->set_output($xml); 

Oppure puoi usare semplicemente PHP per impostare le intestazioni :

 header('Content-type: text/xml'); echo $this->dbutil->xml_from_result($query, $config); 

Oppure puoi utilizzare l' helper per il download dell'elemento della configuration :

 $xml = $this->dbutil->xml_from_result($query, $config); $this->load->helper('download'); force_download('myfile.xml', $xml); 

Oppure scrivilo su un file con l' helper dei file :

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

Ho avuto anche la stessa domanda. L'ho cercato su google. Ho trovato questa soluzione. E funziona perfettamente per me. Clicca qui per get il codice sorgente

Basta scaricare e decomprimere (estrarlo)

Quindi copia il file xml_writer.php nelle librerie application-> della cartella estratta nella cartella delle librerie nel progetto Codeigniter.

Copia anche il file xml.php in application-> controller nella cartella dei tuoi controller

Infine copia la xml.php nelle viste della cartella estratta nella tua vista ed eseguila ..

Questo è tutto…

Soluzione personalizzata:

 $mysql_data = $this->db->get('products') ->result_arrays(); $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);