On utilise souvent YAML, JSON et XML pour représenter des données structurées. L'objectif de cet exercice est de comprendre les différences entre ces formats en manipulant un même ensemble de données dans les trois formats.
Imaginons que nous avons une liste de livres avec les informations suivantes :
Voici les données sous forme de tableau :
Titre | Auteur | Année | Genres |
1984 | George Orwell | 1949 | Dystopie, Politique |
Le Petit Prince | Antoine de Saint-Exupéry | 1943 | Conte, Philosophie |
1️⃣ Convertissez ces données en JSON, YAML et XML.
2️⃣ Identifiez les différences principales entre ces formats (syntaxe, lisibilité, etc.).
✅ Charge les fichiers JSON, YAML et XML. ✅ Convertit chaque format en tableau PHP. ✅ Compare les résultats.
📌 Code PHP : Manipulation JSON, YAML et XML Créez les fichiers livres.json, livres.yaml et livres.xml, puis exécutez ce script :
<?php // Active l'affichage des erreurs (utile en développement) error_reporting(E_ALL); ini_set('display_errors', 1); // --- 1. Charger un fichier JSON --- function load_json($file) { $json = file_get_contents($file); return json_decode($json, true); } // --- 2. Charger un fichier YAML --- function load_yaml($file) { if (!function_exists('yaml_parse_file')) { die("Erreur : L'extension PHP YAML n'est pas installée !"); } return yaml_parse_file($file); } // --- 3. Charger un fichier XML --- function load_xml($file) { $xml = simplexml_load_file($file); $json = json_encode($xml); // Convertit en JSON temporairement return json_decode($json, true); // Puis en tableau PHP } // --- 4. Comparer les données --- $json_data = load_json("livres.json"); $yaml_data = load_yaml("livres.yaml"); $xml_data = load_xml("livres.xml"); // Vérification de l'égalité des données echo "JSON et YAML identiques ? " . ($json_data == $yaml_data ? "OUI" : "NON") . "\n"; echo "JSON et XML identiques ? " . ($json_data == $xml_data ? "OUI" : "NON") . "\n"; echo "YAML et XML identiques ? " . ($yaml_data == $xml_data ? "OUI" : "NON") . "\n"; // --- 5. Afficher les données --- echo " <br /> Données JSON : <br /> "; print_r($json_data); echo " <br /> Données YAML : <br /> "; print_r($yaml_data); echo " <br /> Données XML : <br /> "; print_r($xml_data); ?>
Si PHP ne reconnaît pas yaml_parse_file() :