2011-01-31 22 views
7

Mi chiedo solo se qualcuno può indicarmi la direzione di alcuni suggerimenti/uno script che mi aiuterà a creare un XML da un file CSV originale, utilizzando PHP.Script PHP per convertire i file .CSV in .XML

Acclamazioni

+5

Posso. '* puntando nella direzione generale di google con la richiesta" convert .CSV in .XML "* –

+0

Sì, il" software "che lo fa è davvero comodo" Roll Eyes " – StuBlackett

+1

'Basta google' Bene, se fosse così facile pensi che Stu l'avrebbe già fatto? – SC1988

risposta

15

Questo è abbastanza facile da fare, basta guardare fgetcsv per leggere i file csv e poi DomDocument per scrivere un file xml. Questa versione utilizza le intestazioni dal file come chiavi del documento xml.

+0

Ciao Michael, so che questo è un vecchio post ma spero che tu lo noti. Come posso annidare questa stessa funzione in se stessa? Quello che ho è cliente che vuole XML> CSV> XML> CSV (conversione tra i due) per il loro sistema di inventario. Gli articoli ordinati dai loro clienti vengono archiviati come tali quando convertiti da XML a CSV: nome_articolo | item_price | item_quantity Quello che faccio è avere CSV> XML creare un csv temporaneo per memorizzare queste informazioni. Tutto quello che voglio fare è esattamente ciò che questo script fa, ancora, con quel file temporaneo. Ma per qualche ragione continua a cercare di ripetere più del dovuto. Per favore, dimmi se puoi – SC1988

5

There are a number of sites out there that will do it for you.

Se questo sta per essere un processo regolare, piuttosto che una cosa di una volta può essere l'ideale per analizzare solo il CSV e di uscita XML da soli:

$csv = file("path/to/csv.csv"); 

foreach($csv as $line) 
{ 
    $data = explode(",", $line); 
    echo "<xmltag>".$data[0]."</xmltag>"; 
    //etc... 
} 

Guardi su file e string funzioni di PHP.

+0

Saluti Ben. Una risposta utile !! Daro un'occhiata. Sono stato a guardare fgetcsv anche sul sito di PHP.net. – StuBlackett

6

Il codice sopra riportato crea un documento XML, ma non lo memorizza su alcun dispositivo fisico. Quindi sostituire echo $doc->saveXML(); con

$strxml = $doc->saveXML(); 
$handle = fopen($outputFilename, "w"); 
fwrite($handle, $strxml); 
fclose($handle);