Convertir un tableau multidimensionnel en fichier XML avec PHP
Dans ce tutoriel, nous allons découvrir comment convertir un tableau multidimensionnel en fichier XML avec PHP. L’exemple de code montre comment analyser le fichier XML et convertir les données XML en un tableau avec PHP.
Pour convertir le tableau multidimensionnel en un fichier xml, créez un fichier XML et utilisez la fonction appendChild() et createElement() pour ajouter un élément de tableau dans un fichier XML.
Commencez par créer un tableau multidimensionnel pour convertir ce tableau au format de fichier XML.
<?php $tab = array( 'library'=> 'MegaLib', 'book'=> array( '0' => array( "title" => "Rear Window", "director" => "Alfred Hitchcock", "year" => 1954 ), '1' => array( "title" => "Full Metal Jacket", "director" => "Stanley Kubrick", "year" => 1987 ), '2' => array( "title" => "Mean Streets", "director" => "Martin Scorsese", "year" => 1973 ) ) ); ?>
Maintenant, vous devez créer une fonction generatXML() pour générer le XML.
<?php function generateXML($data) { $name = $data['library']; $rowCount = count($data['book']); //créer le document XML $xmlDoc = new DOMDocument(); $root = $xmlDoc->appendChild($xmlDoc->createElement("book_info")); $root->appendChild($xmlDoc->createElement("title",$name)); $root->appendChild($xmlDoc->createElement("totalRows",$rowCount)); $tabBooks = $root->appendChild($xmlDoc->createElement('rows')); foreach($data['book'] as $book){ if(!empty($book)){ $tabBook = $tabBooks->appendChild($xmlDoc->createElement('book')); foreach($book as $key=>$val){ $tabBook->appendChild($xmlDoc->createElement($key, $val)); } } } header("Content-Type: text/plain"); //formater la sortie $xmlDoc->formatOutput = true; //enregistrer le fichier XML $file_name = str_replace(' ', '_',$name).'.xml'; $xmlDoc->save($file_name); //retourne le nom du fichier xml return $file_name; } ?>
Puis utilisez la fonction generateXML() et transmettez-y le tableau pour y convertir en XML.
generateXML($tab);
Sortie :
<book_info> <title>MegaLib</title> <totalRows>3</totalRows> <rows> <book> <title>Rear Window</title> <director>Alfred Hitchcock</director> <year>1954</year> </book> <book> <title>Full Metal Jacket</title> <director>Stanley Kubrick</director> <year>1987</year> </book> <book> <title>Mean Streets</title> <director>Martin Scorsese</director> <year>1973</year> </book> </rows> </book_info>