Pada artikel ini, kita akan membahas cara mengurai XML dalam bahasa pemrograman C++. Kita akan melihat beberapa contoh kerja untuk memahami mekanisme parsing XML di C++.
Apa itu XML??
XML adalah bahasa markup dan terutama digunakan untuk menyimpan dan mentransfer data secara terorganisir. XML adalah singkatan dari eXtensible Markup Language. Ini sangat mirip dengan HTML. XML sepenuhnya berfokus pada penyimpanan dan transfer data, sedangkan HTML digunakan untuk menampilkan data di browser.
Contoh File XML/XML Sintaks
Berikut adalah contoh file XML:
Tidak seperti HTML, Ini adalah bahasa markup yang berorientasi pada tag, dan kita dapat mendefinisikan tag kita sendiri dalam file XML. Dalam contoh di atas, kami memiliki beberapa tag yang ditentukan pengguna seperti “
Mengurai Pustaka di C++:
Ada berbagai perpustakaan untuk mengurai data XML di sebagian besar bahasa pemrograman tingkat tinggi. C++ tidak terkecuali. Berikut adalah pustaka C++ paling populer untuk mengurai data XML:
- RapidXML
- PugiXML
- KecilXML
Seperti namanya, RapidXML terutama berfokus pada kecepatan, dan ini adalah perpustakaan penguraian gaya DOM. PugiXML mendukung konversi Unicode. Anda mungkin ingin menggunakan PugiXML jika Anda ingin mengonversi dokumen UTF-16 ke UTF-8. TinyXML adalah versi minimum untuk mengurai data XML dan tidak secepat dibandingkan dengan dua sebelumnya previous. Jika Anda hanya ingin menyelesaikan pekerjaan dan tidak peduli dengan kecepatan, Anda dapat memilih TinyXML.
Contoh
Sekarang, kita memiliki pemahaman dasar tentang library parsing XML dan XML di C++. Sekarang mari kita lihat beberapa contoh untuk mengurai file xml di C++:
- Contoh-1: Parsing XML dalam C++ menggunakan RapidXML
- Contoh-2: Parsing XML dalam C++ menggunakan PugiXML
- Contoh-3: Parsing XML dalam C++ menggunakan TinyXML
Dalam setiap contoh ini, kami akan menggunakan perpustakaan masing-masing untuk mengurai contoh file XML.
Contoh-1: Parsing XML dalam C++ menggunakan RapidXML
Dalam program contoh ini, kami akan mendemonstrasikan cara mengurai xml menggunakan pustaka RapidXML di C++. Berikut adalah file XML input (contoh.xml):
Tujuan kami di sini adalah untuk mengurai file XML di atas menggunakan C++. Berikut adalah program C++ untuk mengurai data XML menggunakan RapidXML. Anda dapat mendownload library RapidXML dari Di Sini.
#termasuk#termasuk
#termasuk
#sertakan "rapidxml.hp"
menggunakan namespace std;
menggunakan namespace rapidxml;
xml_document<> dokumen
xml_node<> * root_node = NULL;
int utama (kosong)
cout << "\nParsing my students data (sample.xml)… " << endl;
// Baca sampelnya.file xml
ifstream theFile ("contoh.xml");
vektor
penyangga.push_back('\0');
// Mengurai buffer
dokter.mengurai<0>(&penyangga[0]);
// Cari tahu simpul akar
root_node = dokumen.first_node("Data Siswa Saya");
// Iterasi pada node siswa
for (xml_node<> * student_node = root_node->first_node("Student"); student_node; student_node = student_node->next_sibling())
cout << "\nStudent Type = " << student_node->first_attribute("tipe_siswa")->nilai();
cout << endl;
// Interate atas Nama Siswa
for(xml_node<> * student_name_node = student_node->first_node("Name"); student_name_node; student_name_node = student_name_node->next_sibling())
cout << "Student Name = " << student_name_node->nilai();
cout << endl;
cout << endl;
kembali 0;
Contoh-2: Parsing XML dalam C++ menggunakan PugiXML
Dalam contoh program ini, kami akan mendemonstrasikan cara mengurai xml menggunakan PugiXML library di C++. Berikut adalah file XML input (contoh.xml):
Dalam contoh program ini, kami akan mendemonstrasikan cara mengurai xml menggunakan pustaka pugixml di C++. Anda dapat mengunduh pustaka PugiXML dari Di Sini.
#termasuk#sertakan "pugixml.hp"
menggunakan namespace std;
menggunakan namespace pugi;
int utama()
cout << "\nParsing employees data (sample.xml)… \n\n";
xml_dokumen dokumen;
// memuat file XML
jika (!dokter.load_file("contoh.xml")) kembali -1;
xml_node alat = doc.anak("Data Karyawan").anak("Karyawan");
untuk (xml_node_iterator itu = alat.mulai(); saya t != alat.akhir(); ++ itu)
cout << "Employees:";
for (xml_attribute_iterator ait = it->attributes_begin(); ait != itu->attributes_end(); ++ itu)
cout << " " << ait->nama() << "=" << ait->nilai();
cout << endl;
cout << endl;
kembali 0;
Contoh-3: Parsing XML dalam C++ menggunakan TinyXML
Dalam contoh program ini, kami akan mendemonstrasikan cara mengurai xml menggunakan perpustakaan TinyXML di C++. Berikut adalah file XML input (contoh.xml):
Dalam program contoh ini, kami akan mendemonstrasikan cara mengurai xml menggunakan perpustakaan TinyXML di C++. Anda dapat mendownload library TinyXML dari Di Sini.
#termasuk#termasuk
#termasuk
#sertakan "tinyxml2.cpp"
menggunakan namespace std;
menggunakan namespace tinyxml2;
int utama (kosong)
cout << "\nParsing my students data (sample.xml)… " << endl;
// Baca sampelnya.file xml
dokumen XMLDocument;
dokter.LoadFile("contoh.xml");
const char* judul = doc.FirstChildElement("MyStudentsData" )->FirstChildElement("Student" )->GetText();
printf("Nama Siswa : %s\n", judul );
XMLText* textNode = doc.LastChildElement("MyStudentsData" )->LastChildElement("Student" )->FirstChild()->ToText();
judul = textNode->Nilai();
printf("Nama Siswa : %s\n", judul );
kembali 0;
Kesimpulan
Dalam artikel ini, kami telah membahas secara singkat XML dan melihat tiga contoh berbeda tentang cara mengurai XML di C++. TinyXML adalah perpustakaan minimalis untuk mem-parsing data XML. Sebagian besar programmer terutama menggunakan RapidXML atau PugiXML untuk mengurai data XML.