Arduino:
Arbeiten mit XML

Wie geht das:

Wir werden die XMLWriter Bibliothek verwenden, um XML zu erstellen, und die tinyxml2 Bibliothek, um es zu parsen. Installieren Sie zuerst die Bibliotheken über den Bibliotheks-Manager in Ihrer Arduino IDE.

Ein XML-Dokument erstellen:

#include <XMLWriter.h>

void setup() {
  Serial.begin(9600);
  
  XMLWriter xml(&Serial); // Verwendet Serial zur Ausgabe
  
  xml.header();
  xml.tag("greeting").tag("text").text("Hallo, Welt!").close().close();
  xml.flush();
}

void loop() {
}

Einen XML-String dekodieren:

#include <tinyxml2.h>

tinyxml2::XMLDocument doc;
doc.Parse("<greeting><text>Hallo, Welt!</text></greeting>");

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

Beispielausgabe:

<greeting>
  <text>Hallo, Welt!</text>
</greeting>

Tiefergehend

XML oder Extensible Markup Language ist eine Auszeichnungssprache, die einen Satz von Regeln für die Kodierung von Dokumenten in einem Format festlegt, das sowohl menschen- als auch maschinenlesbar ist. Sie ist seit den späten 90er Jahren vorhanden und wird in verschiedenen Bereichen, insbesondere dort, wo plattformunabhängiger Datenaustausch benötigt wird, umfassend verwendet. Die begrenzten Speicherressourcen von Arduino machen die Arbeit mit XML anspruchsvoller als auf einem PC. Daher sind leichtgewichtige Bibliotheken entscheidend. Obwohl JSON aufgrund seiner einfacheren Syntax und geringeren Größe an Popularität für den Datenaustausch gewonnen hat, wird XML, besonders beim Umgang mit Altsystemen oder Anwendungen, die Dokumentenvalidierung über Schemata erfordern, immer noch weitgehend verwendet. Der Schlüssel zur Arduino XML-Implementierung ist das Stream-Parsing, das das Dokument in Segmenten liest, um den Speicherverbrauch niedrig zu halten.

Siehe auch