Arduino:
Att arbeta med XML

Hur man gör:

Vi kommer att använda XMLWriter-biblioteket för att skapa XML och tinyxml2-biblioteket för att tolka det. Installera först biblioteken via Bibliotekshanteraren i din Arduino IDE.

Skapa ett XML-dokument:

#include <XMLWriter.h>

void setup() {
  Serial.begin(9600);
  
  XMLWriter xml(&Serial); // Använder Serial för utmatning
  
  xml.header();
  xml.tag("greeting").tag("text").text("Hej, världen!").close().close();
  xml.flush();
}

void loop() {
}

Dekodera en XML-sträng:

#include <tinyxml2.h>

tinyxml2::XMLDocument doc;
doc.Parse("<greeting><text>Hej, världen!</text></greeting>");

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

Exempelutmatning:

<greeting>
  <text>Hej, världen!</text>
</greeting>

Djupdykning

XML, eller Extensible Markup Language, är ett märkspråk som definierar en uppsättning regler för att koda dokument i ett format som är både mänskligt läsbart och maskinläsbart. Det har funnits sedan slutet av 90-talet och används flitigt inom olika områden, speciellt där plattformsoberoende datautbyte behövs. Arduinos begränsade minnesresurser gör att arbete med XML är mer utmanande än på en PC. Därför är lätta bibliotek avgörande. Även om JSON har blivit populärt för datautbyte på grund av sin enklare syntax och mindre fotavtryck, används XML fortfarande brett, särskilt när man hanterar äldre system eller applikationer som kräver dokumentvalidering via scheman. Nyckeln till Arduinos XML-implementering är strömanalys, som läser dokumentet i segment för att hålla minnesanvändningen låg.

Se även