Arduino:
Praca z XML
Jak to zrobić:
Użyjemy biblioteki XMLWriter
do tworzenia dokumentów XML oraz biblioteki tinyxml2
do ich analizy. Najpierw zainstaluj biblioteki za pomocą menedżera bibliotek w Twoim środowisku IDE Arduino.
Tworzenie dokumentu XML:
#include <XMLWriter.h>
void setup() {
Serial.begin(9600);
XMLWriter xml(&Serial); // Używając Serial do wyjścia
xml.header();
xml.tag("greeting").tag("text").text("Witaj, świecie!").close().close();
xml.flush();
}
void loop() {
}
Dekodowanie ciągu XML:
#include <tinyxml2.h>
tinyxml2::XMLDocument doc;
doc.Parse("<greeting><text>Witaj, świecie!</text></greeting>");
tinyxml2::XMLElement* text = doc.FirstChildElement("greeting")->FirstChildElement("text");
if (text != nullptr) {
Serial.println(text->GetText());
}
Przykładowe wyjście:
<greeting>
<text>Witaj, świecie!</text>
</greeting>
Wgłębianie się
XML, czyli rozszerzalny język znaczników, to język znaczników definiujący zestaw zasad do kodowania dokumentów w formacie, który jest czytelny zarówno dla człowieka, jak i maszyny. XML istnieje od końca lat 90. i jest szeroko stosowany w różnych dziedzinach, zwłaszcza tam, gdzie potrzebna jest wymiana danych niezależna od platformy. Ograniczone zasoby pamięci Arduino sprawiają, że praca z XML jest bardziej wymagająca niż na komputerze. Dlatego kluczowe są lekkie biblioteki. Chociaż JSON zyskał na popularności do wymiany danych dzięki swojej prostszej składni i mniejszemu śladowi, XML jest nadal szeroko stosowany, szczególnie w przypadku systemów dziedziczonych lub aplikacji wymagających walidacji dokumentów za pomocą schematów. Kluczem do implementacji XML w Arduino jest analiza strumieniowa, która odczytuje dokument w segmentach, aby utrzymać niskie zużycie pamięci.
Zobacz także
- Dokumentacja biblioteki TinyXML-2
- Biblioteka Arduino JSON jako alternatywa przy pracy z danymi JSON.
- Samouczek XML z W3Schools do ogólnej nauki XML.
- Specyfikacja XML W3C dla oficjalnych standardów i rekomendacji XML.