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
- TinyXML-2 Bibliotheksdokumentation
- Arduino JSON-Bibliothek als Alternative bei der Arbeit mit JSON-Daten.
- W3Schools XML-Tutorial für allgemeines XML-Lernen.
- W3C XML-Spezifikation für die offiziellen XML-Standards und Empfehlungen.