Arduino:
Работа с XML

Как:

Мы будем использовать библиотеку XMLWriter для создания XML и библиотеку tinyxml2 для его анализа. Установите библиотеки через Менеджер библиотек в вашей среде разработки Arduino IDE.

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

#include <XMLWriter.h>

void setup() {
  Serial.begin(9600);
  
  XMLWriter xml(&Serial); // Используем Serial для вывода
  
  xml.header();
  xml.tag("greeting").tag("text").text("Привет, мир!").close().close();
  xml.flush();
}

void loop() {
}

Декодирование XML-строки:

#include <tinyxml2.h>

tinyxml2::XMLDocument doc;
doc.Parse("<greeting><text>Привет, мир!</text></greeting>");

tinyxml2::XMLElement* text = doc.FirstChildElement("greeting")->FirstChildElement("text");
if (text != nullptr) {
  Serial.println(text->GetText());
}

Пример вывода:

<greeting>
  <text>Привет, мир!</text>
</greeting>

Подробнее

XML или Расширяемый Язык Разметки - это язык разметки, который определяет набор правил для кодирования документов в формате, который является как удобочитаемым, так и машиночитаемым. Он существует с конца 90-х и широко используется в различных областях, особенно там, где необходим обмен данными, не зависящий от платформы. Ограниченные ресурсы памяти Arduino делают работу с XML более сложной, чем на ПК. Поэтому крайне важны легковесные библиотеки. Хотя JSON получил популярность для обмена данными из-за своего более простого синтаксиса и меньшего размера, XML все еще широко используется, особенно при работе с устаревшими системами или приложениями, требующими проверки документов через схемы. Ключом к реализации XML на Arduino является поточный парсинг, который считывает документ по частям для снижения использования памяти.

Смотрите также