C++:
การทำงานกับ XML

วิธีการ:

นี่คือวิธีง่ายๆในการแยกวิเคราะห์ XML โดยใช้ไลบรารี TinyXML-2:

#include <tinyxml2.h>
#include <iostream>

int main() {
    tinyxml2::XMLDocument doc;
    doc.Parse("<root><message>Hello, World!</message></root>");
    const char* content = doc.FirstChildElement("root")->FirstChildElement("message")->GetText();
    std::cout << content << std::endl;
    return 0;
}

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

Hello, World!

และนี่คือวิธีการสร้างไฟล์ 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("Hello, World!");
    root->InsertEndChild(message);
    doc.SaveFile("output.xml");
    return 0;
}

ซึ่งจะสร้างไฟล์ XML output.xml ที่มีเนื้อหา:

<?xml version="1.0"?>
<root>
    <message>Hello, World!</message>
</root>

ลงลึกลงไป

XML มีบทบาทสำคัญในบริการเว็บและการเก็บข้อมูลตั้งแต่ปลายยุค 90’s ในขณะที่ JSON และ YAML ตอนนี้มีการใช้งานมากขึ้นสำหรับการกำหนดค่าและการทำงานร่วมกัน, XML ยังคงเป็นที่นิยมอย่างมากในระบบองค์กรมากมาย การแยกวิเคราะห์ XML ใน C++ อาจดูเหมือนเก่าด้วยการประมวลผล DOM/SAX ด้วยตนเอง โชคดีที่ไลบรารีเช่น TinyXML-2 ทำให้มันง่ายขึ้น C++ ไม่มีการสนับสนุน XML ในตัว; ไลบรารีเช่น TinyXML-2, pugixml หรือ Xerces ช่วยแก้ปัญหาที่ยากๆ

ดูเพิ่มเติม