Dart:
Trabajando con XML

Cómo hacerlo:

Dart no incluye soporte integrado para el manejo de XML en su biblioteca estándar, lo que hace necesario el uso de paquetes de terceros. Un paquete popular es xml. Para usarlo, primero necesitas agregarlo a tu pubspec.yaml:

dependencies:
  xml: ^5.0.0 // Usa la última versión disponible

Luego, importa el paquete en tu archivo Dart:

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

Analizando XML:

Supón que tienes una cadena XML como esta:

<String name="greeting">Hola, mundo!</String>

Puedes analizar y leer el XML de la siguiente manera:

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

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

Creando Documentos XML:

Crear un nuevo documento XML es sencillo con el paquete xml:

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

void main() {
  createXml();
}

Salida:

<?xml version="1.0"?>
<greeting name="hello">Hola, mundo!</greeting>

Consultando y Modificando XML:

Para encontrar o modificar elementos, puedes usar métodos similares a XPath:

void modifyXml(String xmlString) {
    var document = xml.XmlDocument.parse(xmlString);
    var greeting = document.findAllElements('greeting').first;
    
    // Modificando el atributo 'name'
    greeting.setAttribute('name', 'greeting_modified');
    
    // Añadiendo un nuevo elemento hijo
    greeting.children.add(xml.XmlElement(xml.XmlName('message'), [], [xml.XmlText('¡Adiós!')]));
    
    print(document.toXmlString(pretty: true));
}

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

Salida:

<greeting name="greeting_modified">
  Hola, mundo!
  <message>¡Adiós!</message>
</greeting>

Estos ejemplos demuestran operaciones básicas para trabajar con XML en Dart. Con el paquete xml, puedes analizar, crear y manipular documentos XML para adaptarlos a los requisitos de tu aplicación.