Arduino:
การทำงานกับ XML

วิธีการ:

เราจะใช้ไลบรารี XMLWriter เพื่อสร้าง XML และไลบรารี tinyxml2 เพื่อแยกส่วนมัน ติดตั้งไลบรารีเหล่านี้ผ่าน Library Manager ใน Arduino IDE ของคุณ

การสร้างเอกสาร XML:

#include <XMLWriter.h>

void setup() {
  Serial.begin(9600);
  
  XMLWriter xml(&Serial); // ใช้ Serial เพื่อแสดงผล
  
  xml.header();
  xml.tag("greeting").tag("text").text("Hello, world!").close().close();
  xml.flush();
}

void loop() {
}

การถอดรหัสสตริง XML:

#include <tinyxml2.h>

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

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

ตัวอย่างผลลัพธ์:

<greeting>
  <text>Hello, world!</text>
</greeting>

ลึกลงไป

XML หรือ Extensible Markup Language เป็นภาษามาร์กอัพที่กำหนดชุดของกฎสำหรับการเข้ารหัสเอกสารในรูปแบบที่สามารถอ่านได้โดยทั้งมนุษย์และเครื่องจักร มันมีมาตั้งแต่ปลายยุค 90 และถูกใช้งานอย่างกว้างขวางในหลายสาขา โดยเฉพาะที่ต้องการการแลกเปลี่ยนข้อมูลที่ไม่ขึ้นกับแพลตฟอร์ม Arduino ที่มีทรัพยากรหน่วยความจำจำกัดทำให้การทำงานกับ XML ยากกว่าบนพีซี ดังนั้น ไลบรารีที่มีน้ำหนักเบาจึงมีความสำคัญ แม้ว่า JSON จะได้รับความนิยมสำหรับการแลกเปลี่ยนข้อมูลเนื่องจากโครงสร้างที่ง่ายกว่าและมีขนาดเล็ก แต่ XML ยังคงถูกใช้งานอย่างแพร่หลาย เฉพาะเมื่อต้องจัดการกับระบบเก่าหรือแอปพลิเคชันที่ต้องการการตรวจสอบเอกสารผ่านสคีมา กุญแจสำคัญในการดำเนินการ XML ของ Arduino คือการแยกส่วน Stream ซึ่งอ่านเอกสารแบบแบ่งส่วนเพื่อรักษาการใช้หน่วยความจำให้ต่ำ

ดูเพิ่มเติม