slam:donneestructurees:exercice_yaml_json_xml

Exercice : Comparaison des formats de données

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 :

  • Titre
  • Auteur
  • Année de publication
  • Genres (une liste de genres)

Voici les données sous forme de tableau :

Titre Auteur Année Genres
1984 George Orwell 1949 Dystopie, Politique
Le Petit PrinceAntoine de Saint-Exupéry1943Conte, Philosophie

1️⃣ Convertissez ces données en JSON, YAML et XML.

2️⃣ Identifiez les différences principales entre ces formats (syntaxe, lisibilité, etc.).

  1. Quel format est le plus facile à lire pour un humain ? Pourquoi ?
  2. Quel format est le plus adapté pour un échange de données entre applications ?
  3. Comment chaque format gère-t-il les listes (ex. la liste des genres) ?
  4. Quel format est le plus verbeux et pourquoi ?
  5. YAML n'utilise pas de guillemets ni d'accolades. Quels sont les avantages et inconvénients de cette approche ?

✅ 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() :

  1. installez l'extension YAML sur le serveur apache : sudo apt install php-yaml # Pour Linux (Ubuntu/Debian)
  2. Dans le fichier php.ini (commande php –ini pour connaître son emplacement), décommentez ou ajoutez : extension=yaml
  3. Redémarrez le serveur : sudo systemctl restart apache2
  1. Chargement des fichiers : identifier la commande qui permet de charger caque format de fichier
  2. Comparaison des données : vérifier si les formats contiennent les mêmes données.
  3. Affichage des résultats : afficher les tableaux PHP obtenus pour voir leur structure.
  • slam/donneestructurees/exercice_yaml_json_xml.txt
  • Dernière modification : 2025/01/30 16:25
  • de dthevenot