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 מספקות פתרונות לאתגרים אלו.

ראו גם