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 — це аналіз потоку, який читає документ по частинах, щоб зберегти низьке використання пам’яті.

Дивіться також