Dart:
Работа с XML

Как:

Dart не включает встроенной поддержки для работы с XML в своей стандартной библиотеке, что требует использования сторонних пакетов. Один из популярных пакетов - xml. Чтобы использовать его, сначала нужно добавить его в ваш pubspec.yaml:

dependencies:
  xml: ^5.0.0 // Используйте последнюю доступную версию

Затем импортируйте пакет в ваш Dart файл:

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

Анализ XML:

Представим, у вас есть строка XML вида:

<String name="greeting">Привет, мир!</String>

Вы можете анализировать и читать XML следующим образом:

void parseXml(String xmlString) {
    final document = xml.XmlDocument.parse(xmlString);
    final String content = document.findElements('String').single.getAttribute('name');
    print(content); // Выводит: greeting
}

void main() {
  final xmlString = '<String name="greeting">Привет, мир!</String>';
  parseXml(xmlString);
}

Создание XML-документов:

Создание нового XML-документа просто с пакетом xml:

void createXml() {
  final builder = xml.XmlBuilder();
  builder.processing('xml', 'version="1.0"');
  builder.element('greeting', nest: () {
    builder.attribute('name', 'hello');
    builder.text('Привет, мир!');
  });
  final xmlDocument = builder.buildDocument();
  print(xmlDocument.toXmlString(pretty: true));
}

void main() {
  createXml();
}

Вывод:

<?xml version="1.0"?>
<greeting name="hello">Привет, мир!</greeting>

Запрос и изменение XML:

Для поиска или изменения элементов вы можете использовать методы, похожие на XPath:

void modifyXml(String xmlString) {
    var document = xml.XmlDocument.parse(xmlString);
    var greeting = document.findAllElements('greeting').first;
    
    // Изменяем атрибут 'name'
    greeting.setAttribute('name', 'greeting_modified');
    
    // Добавляем новый дочерний элемент
    greeting.children.add(xml.XmlElement(xml.XmlName('message'), [], [xml.XmlText('До свидания!')]));
    
    print(document.toXmlString(pretty: true));
}

void main() {
  final xmlString = '<greeting name="hello">Привет, мир!</greeting>';
  modifyXml(xmlString);
}

Вывод:

<greeting name="greeting_modified">
  Привет, мир!
  <message>До свидания!</message>
</greeting>

Эти примеры демонстрируют основные операции работы с XML в Dart. С пакетом xml вы можете анализировать, создавать и манипулировать XML-документами, чтобы удовлетворить требования вашего приложения.