C++

Cara Mengurai XML di C++

Cara Mengurai XML di C++

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:




tom


Itik jantan

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 “”. Setiap tag akan memiliki tag penutup yang sesuai. “” adalah tag penutup untuk “”. Kami dapat menentukan tag yang ditentukan pengguna sebanyak yang kami inginkan untuk mengatur data.

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:

  1. RapidXML
  2. PugiXML
  3. 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++:

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):




John


Sean


Sarah

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 buffer((istreambuf_iterator(File)), istreambuf_iterator());
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):



John
Sean
Sarah

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.

Game Lab Aplikasi Oculus Teratas
Jika Anda adalah pemilik headset Oculus maka Anda harus tahu tentang sideloading. Sideloading adalah proses menginstal konten non-toko di headset Anda...
10 Game Teratas untuk Dimainkan di Ubuntu
Platform Windows telah menjadi salah satu platform yang mendominasi untuk bermain game karena persentase besar dari game yang berkembang saat ini untu...
5 Game Arkade Terbaik untuk Linux
Saat ini, komputer adalah mesin serius yang digunakan untuk bermain game. Jika Anda tidak bisa mendapatkan skor tinggi baru, Anda akan tahu apa yang s...