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 ช่วยแก้ปัญหาที่ยากๆ
ดูเพิ่มเติม
- เอกสาร TinyXML-2: https://leethomason.github.io/tinyxml2/
- ไลบรารี pugixml: https://pugixml.org/
- ประมวลผล Xerces-C++: https://xerces.apache.org/xerces-c/
- ข้อกำหนด XML ของ W3C: https://www.w3.org/XML/