C ++

Cara Menghuraikan XML dalam C ++

Cara Menghuraikan XML dalam C ++

Dalam artikel ini, kita akan membincangkan cara menguraikan XML dalam bahasa pengaturcaraan C ++. Kami akan melihat beberapa contoh kerja untuk memahami mekanisme penghuraian XML di C++.

Apa itu XML?

XML adalah bahasa markup dan digunakan terutamanya untuk menyimpan dan memindahkan data secara teratur. XML bermaksud Bahasa Markup eXtensible. Ia sangat serupa dengan HTML. XML sepenuhnya fokus pada penyimpanan dan pemindahan data, sedangkan HTML digunakan untuk menampilkan data pada penyemak imbas.

Contoh Sintaks Fail XML / XML

Berikut adalah contoh fail XML:




Tom


Drake

Tidak seperti HTML, ini adalah bahasa markup berorientasikan tag, dan kami dapat menentukan tag kami sendiri dalam fail XML. Dalam contoh di atas, kami mempunyai beberapa tag yang ditentukan pengguna seperti "". Setiap teg akan mempunyai tanda akhir yang sesuai. ""Adalah tanda akhir untuk"". Kami dapat menentukan seberapa banyak teg yang ditentukan pengguna untuk mengatur data.

Menghuraikan Perpustakaan dalam C ++:

Terdapat pelbagai perpustakaan untuk menguraikan data XML di kebanyakan bahasa pengaturcaraan peringkat tinggi. C ++ tidak terkecuali. Berikut adalah perpustakaan C ++ yang paling popular untuk menguraikan data XML:

  1. RapidXML
  2. PugiXML
  3. TinyXML

Seperti namanya, RapidXML terutama difokuskan pada kepantasan, dan itu adalah pustaka parsing gaya DOM. PugiXML menyokong penukaran Unicode. Anda mungkin mahu menggunakan PugiXML jika anda mahu menukar dokumen UTF-16 ke UTF-8. TinyXML adalah versi minimum untuk menguraikan data XML dan tidak secepat yang dibandingkan dengan dua sebelumnya. Sekiranya anda mahu menyelesaikan tugas dan tidak peduli dengan kelajuannya, anda boleh memilih TinyXML.

Contoh
Sekarang, kita mempunyai pemahaman asas mengenai perpustakaan mengurai XML dan XML di C++. Sekarang mari kita lihat beberapa contoh untuk menguraikan fail xml di C ++:

Dalam setiap contoh ini, kami akan menggunakan perpustakaan masing-masing untuk menguraikan contoh fail XML.

Contoh-1: Huraikan XML dalam C ++ menggunakan RapidXML

Dalam program contoh ini, kami akan menunjukkan cara menguraikan xml menggunakan perpustakaan RapidXML di C++. Berikut adalah fail XML input (contoh.xml):




John


Sean


Sarah

Tujuan kami di sini adalah untuk menguraikan fail XML di atas menggunakan C++. Berikut adalah program C ++ untuk menguraikan data XML menggunakan RapidXML. Anda boleh memuat turun perpustakaan RapidXML dari sini.

#sertakan
#sertakan
#sertakan
#masuk "quickxml.hpp "
menggunakan ruang nama std;
menggunakan namespace quickxml;
xml_dokumen <> dokumen
xml_node <> * root_node = NULL;
int utama (tidak sah)

cout << "\nParsing my students data (sample.xml)… " << endl;
// Baca contohnya.fail xml
ifstream theFile ("contoh.xml ");
vektor penyangga ((istreambuf_iterator(theFile)), istreambuf_iterator());
penyangga.tolak_balik ('\ 0');
// Uraikan penyangga
dokumen.menghurai<0>(& penyangga [0]);
// Ketahui simpul akar
root_node = dokumen.first_node ("MyStudentsData");
// Beralih ke nod pelajar
untuk (xml_node <> * student_node = root_node-> first_node ("Student"); student_node; student_node = student_node-> next_sibling ())

cout << "\nStudent Type =   " << student_node->first_attribute ("student_type") -> nilai ();
cout << endl;
// Bergaul dengan Nama Pelajar
untuk (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;

pulangan 0;

Contoh-2: Huraikan XML dalam C ++ menggunakan PugiXML

Dalam program contoh ini, kami akan menunjukkan cara menguraikan xml menggunakan perpustakaan PugiXML di C++. Berikut adalah fail XML input (contoh.xml):











Dalam program contoh ini, kami akan menunjukkan cara menguraikan xml menggunakan pustaka pugixml di C++. Anda boleh memuat turun pustaka PugiXML dari sini.

#sertakan
#masuk "pugixml.hpp "
menggunakan ruang nama std;
menggunakan pugi namespace;
int utama ()

cout << "\nParsing employees data (sample.xml)… \n\n";
xml_dokumen dokumen;
// muatkan fail XML
sekiranya (!dokumen.load_file ("contoh.xml ")) pulangan -1;
alat xml_node = doc.kanak-kanak ("EmployeesData").kanak-kanak ("Pekerja");
untuk (xml_node_iterator it = alat.bermula (); ia != alat.akhir (); ++ itu)

cout << "Employees:";
untuk (xml_attribute_iterator ait = it-> attribut_begin (); ait != it-> atribut_end (); ++ ait)

cout << " " << ait->nama () << "=" << ait->nilai ();

cout << endl;

cout << endl;
pulangan 0;

Contoh-3: Huraikan XML dalam C ++ menggunakan TinyXML

Dalam program contoh ini, kami akan menunjukkan cara menguraikan xml menggunakan perpustakaan TinyXML di C++. Berikut adalah fail XML input (contoh.xml):



John
Sean
Sarah

Dalam program contoh ini, kami akan menunjukkan cara menguraikan xml menggunakan perpustakaan TinyXML di C++. Anda boleh memuat turun perpustakaan TinyXML dari sini.

#sertakan
#sertakan
#sertakan
#masuk "tinyxml2.cpp "
menggunakan ruang nama std;
menggunakan namespace tinyxml2;
int utama (tidak sah)

cout << "\nParsing my students data (sample.xml)… " << endl;
// Baca contohnya.fail xml
Dokumen XMLDocument;
dokumen.LoadFile ("contoh.xml ");
const char * tajuk = doc.FirstChildElement ("MyStudentsData") -> FirstChildElement ("Pelajar") -> GetText ();
printf ("Nama Pelajar:% s \ n", tajuk);
XMLText * textNode = dokumen.LastChildElement ("MyStudentsData") -> LastChildElement ("Pelajar") -> FirstChild () -> ToText ();
tajuk = textNode-> Nilai ();
printf ("Nama Pelajar:% s \ n", tajuk);
pulangan 0;

Kesimpulannya

Dalam artikel ini, kami telah membincangkan XML secara ringkas dan melihat tiga contoh yang berbeza tentang bagaimana menguraikan XML dalam C++. TinyXML adalah perpustakaan minimalis untuk menguraikan data XML.  Sebilangan besar pengaturcara menggunakan RapidXML atau PugiXML untuk menguraikan data XML.

Butang tetikus tengah tidak berfungsi pada Windows 10
The butang tetikus tengah membantu anda menelusuri halaman web dan skrin yang panjang dengan banyak data. Sekiranya ia berhenti, anda akan menggunakan...
Cara menukar butang tetikus Kiri & Kanan pada PC Windows 10
Sudah menjadi kebiasaan bahawa semua peranti tetikus komputer dirancang secara ergonomik untuk pengguna tangan kanan. Tetapi ada peranti tetikus yang ...
Tiru klik Tetikus dengan melayang menggunakan Mouse Tanpa Klik di Windows 10
Menggunakan tetikus atau papan kekunci dalam keadaan salah penggunaan berlebihan boleh menyebabkan banyak masalah kesihatan, termasuk ketegangan, sind...