Dart:
Travailler avec XML

Comment faire :

Dart n’inclut pas de support intégré pour la gestion XML dans sa bibliothèque standard, nécessitant l’utilisation de paquets tiers. Un paquet populaire est xml. Pour l’utiliser, vous devez d’abord l’ajouter à votre pubspec.yaml :

dependencies:
  xml: ^5.0.0 // Utilisez la dernière version disponible

Ensuite, importez le paquet dans votre fichier Dart :

import 'package:xml/xml.dart' as xml;

Analyse d’XML :

Supposons que vous ayez une chaîne XML comme celle-ci :

<String name="greeting">Bonjour, monde !</String>

Vous pouvez analyser et lire l’XML comme suit :

void parseXml(String xmlString) {
    final document = xml.XmlDocument.parse(xmlString);
    final String content = document.findElements('String').single.getAttribute('name');
    print(content); // Affiche : greeting
}

void main() {
  final xmlString = '<String name="greeting">Bonjour, monde !</String>';
  parseXml(xmlString);
}

Création de documents XML :

La création d’un nouveau document XML est simple avec le paquet xml :

void createXml() {
  final builder = xml.XmlBuilder();
  builder.processing('xml', 'version="1.0"');
  builder.element('greeting', nest: () {
    builder.attribute('name', 'hello');
    builder.text('Bonjour, monde !');
  });
  final xmlDocument = builder.buildDocument();
  print(xmlDocument.toXmlString(pretty: true));
}

void main() {
  createXml();
}

Sortie :

<?xml version="1.0"?>
<greeting name="hello">Bonjour, monde !</greeting>

Interrogation et modification d’XML :

Pour trouver ou modifier des éléments, vous pouvez utiliser des méthodes semblables à XPath :

void modifyXml(String xmlString) {
    var document = xml.XmlDocument.parse(xmlString);
    var greeting = document.findAllElements('greeting').first;
    
    // Modification de l'attribut 'name'
    greeting.setAttribute('name', 'greeting_modified');
    
    // Ajout d'un nouvel élément enfant
    greeting.children.add(xml.XmlElement(xml.XmlName('message'), [], [xml.XmlText('Au revoir !')]));
    
    print(document.toXmlString(pretty: true));
}

void main() {
  final xmlString = '<greeting name="hello">Bonjour, monde !</greeting>';
  modifyXml(xmlString);
}

Sortie :

<greeting name="greeting_modified">
  Bonjour, monde !
  <message>Au revoir !</message>
</greeting>

Ces exemples démontrent les opérations de base pour travailler avec XML en Dart. Avec le paquet xml, vous pouvez analyser, créer et manipuler des documents XML pour répondre aux exigences de votre application.