C++:
עבודה עם XML
איך לעשות:
הנה דרך פשוטה לנתח XML באמצעות הספרייה TinyXML-2:
#include <tinyxml2.h>
#include <iostream>
int main() {
tinyxml2::XMLDocument doc;
doc.Parse("<root><message>שלום עולם!</message></root>");
const char* content = doc.FirstChildElement("root")->FirstChildElement("message")->GetText();
std::cout << content << std::endl;
return 0;
}
פלט לדוגמא:
שלום עולם!
וכך יוצרים קובץ XML:
#include <tinyxml2.h>
#include <iostream>
int main() {
tinyxml2::XMLDocument doc;
auto* declaration = doc.NewDeclaration();
doc.InsertFirstChild(declaration);
auto* root = doc.NewElement("root");
doc.InsertEndChild(root);
auto* message = doc.NewElement("message");
message->SetText("שלום עולם!");
root->InsertEndChild(message);
doc.SaveFile("output.xml");
return 0;
}
דבר זה יוצר קובץ XML output.xml
עם התוכן:
<?xml version="1.0"?>
<root>
<message>שלום עולם!</message>
</root>
צלילה לעומק
XML היה משמעותי בשירותי אינטרנט ואחסון נתונים מאז שנות ה-90 המאוחרות. למרות שכיום JSON ו-YAML נפוצים יותר לצורכי תצורה ואינטרופרביליות, XML עודנו משמעותי מאוד במערכות ארגוניות רבות. ניתוח XML ב-C++ יכול להרגיש קצת ישן עם ניתוח DOM/SAX ידני. לשמחתנו, ספריות כמו TinyXML-2 מפשטות את התהליך. ל-C++ אין תמיכה מובנית ב-XML; ספריות כמו TinyXML-2, pugixml, או Xerces מספקות פתרונות לאתגרים אלו.
ראו גם
- תיעוד TinyXML-2: https://leethomason.github.io/tinyxml2/
- ספריית pugixml: https://pugixml.org/
- Xerces-C++ Parser: https://xerces.apache.org/xerces-c/
- מפרט XML של W3C: https://www.w3.org/XML/