Arduino:
עבודה עם XML

איך לעשות:

נשתמש בספריית XMLWriter כדי ליצור XML ובספריית tinyxml2 כדי לפענח אותו. התקינו קודם את הספריות דרך מנהל הספריות בסביבת הפיתוח של ארדואינו.

יצירת מסמך 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, או שפת הסימון הניתנת להרחבה, היא שפת סימון המגדירה קבוצת כללים לקידוד מסמכים בפורמט שהוא גם קריא לאדם וגם ניתן לקריאה על ידי מכונה. היא קיימת מאז סוף שנות ה-90 ונמצאת בשימוש נרחב בתחומים שונים, במיוחד שם שנדרשת החלפת נתונים בלתי תלויה בפלטפורמה. משאבי הזיכרון המוגבלים של ארדואינו הופכים את העבודה עם XML למאתגרת יותר מאשר על מחשב אישי. לכן, ספריות קלות משקל הן קריטיות. למרות ש-JSON זכה לפופולריות לשם החלפת נתונים בשל תחבירו הפשוט יותר וטביעת הרגל הקטנה יותר שלו, XML עדיין בשימוש נרחב, במיוחד כאשר מתמודדים עם מערכות ישנות או יישומים הדורשים אימות מסמך באמצעות סכימות. חשוב ליישום XML בארדואינו הוא פרסום אינטראקטיבי, הקורא את המסמך בקטעים כדי לשמור על שימוש נמוך בזיכרון.

ראו גם