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>

 
QCM sur PHP

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *