Dart:
Trabalhando com XML

Como:

Dart não inclui suporte embutido para o manuseio de XML em sua biblioteca padrão, sendo necessário o uso de pacotes de terceiros. Um pacote popular é o xml. Para usá-lo, primeiro você precisa adicioná-lo ao seu pubspec.yaml:

dependencies:
  xml: ^5.0.0 // Use a versão mais recente disponível

Depois, importe o pacote no seu arquivo Dart:

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

Analisando XML:

Suponha que você tenha uma string XML como esta:

<String name="greeting">Olá, mundo!</String>

Você pode analisar e ler o XML da seguinte forma:

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

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

Criando Documentos XML:

Criar um novo documento XML é simples com o pacote xml:

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

void main() {
  createXml();
}

Saída:

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

Consultando e Modificando XML:

Para encontrar ou modificar elementos, você pode usar métodos semelhantes ao XPath:

void modifyXml(String xmlString) {
    var document = xml.XmlDocument.parse(xmlString);
    var greeting = document.findAllElements('greeting').first;
    
    // Modificando o atributo 'name'
    greeting.setAttribute('name', 'greeting_modified');
    
    // Adicionando um novo elemento filho
    greeting.children.add(xml.XmlElement(xml.XmlName('message'), [], [xml.XmlText('Adeus!')]));
    
    print(document.toXmlString(pretty: true));
}

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

Saída:

<greeting name="greeting_modified">
  Olá, mundo!
  <message>Adeus!</message>
</greeting>

Estes exemplos demonstram operações básicas para trabalhar com XML em Dart. Com o pacote xml, você pode analisar, criar e manipular documentos XML para atender às necessidades de sua aplicação.