XML je odličen za prenos podatkov, a ko jih želimo obdelati v Excelu ali uvoziti v bazo, je CSV oblika precej bolj priročna. Spodaj je PHP skript, ki avtomatizira to pretvorbo.
Ključni koraki skripta:
- Priprava poti: Določiš, kje se nahaja tvoj XML in kako se bo imenovala nova CSV datoteka.
- Nalaganje s SimpleXML: Funkcija
simplexml_load_filepretvori XML v objekt, skozi katerega se lahko sprehodimo z zanko. - Priprava glave (Headers): Nastaviš imena stolpcev, ki se bodo pojavili v prvi vrstici CSV datoteke.
- Zapisovanje: Uporabimo
fputcsv, ki poskrbi za pravilno ločevanje s podpičji ali vejicami.
<?php
// Pot do datotek
$xmlFilePath = "podatki.xml";
$outputFilePath = "podatki.csv";
// Preveri obstoj datoteke
if (!file_exists($xmlFilePath)) {
die("Napaka: XML datoteka ne obstaja.");
}
// Naloži XML
$xml = simplexml_load_file($xmlFilePath);
if ($xml === false) {
die("Napaka pri nalaganju XML.");
}
// Odpri CSV za pisanje
$csv = fopen($outputFilePath, 'w');
// Zapiši naslove stolpcev (prilagodi svoji strukturi)
$headers = ['ID', 'Ime', 'Cena'];
fputcsv($csv, $headers);
// Iteriraj čez elemente (v primeru, da so v XML elementi <item>)
foreach ($xml->item as $item) {
$row = [
(string) $item->id,
(string) $item->name,
(string) $item->price,
];
fputcsv($csv, $row);
}
fclose($csv);
echo "Pretvorba uspešna! Datoteka se nahaja v: {$outputFilePath}";
?>