V tem članku bomo razpravljali o tem, kako razčleniti XML v programskem jeziku C ++. Videli bomo več delovnih primerov za razumevanje mehanizma razčlenjevanja XML v jeziku C++.
Kaj je XML?
XML je označevalni jezik in se v glavnem uporablja za shranjevanje in organiziran prenos podatkov. XML pomeni eXtensible Markup Language. Zelo je podoben HTML-ju. XML je popolnoma osredotočen na shranjevanje in prenos podatkov, medtem ko se HTML uporablja za prikaz podatkov v brskalniku.
Vzorčna datoteka XML / sintaksa XML
Tu je vzorčna datoteka XML:
Za razliko od HTML je označevalni jezik, ki je usmerjen v oznake, in lahko določimo svojo oznako v datoteki XML. V zgornjem primeru imamo več uporabniško določenih oznak, kot je »
Razčlenitev knjižnic v jeziku C ++:
Obstajajo različne knjižnice za razčlenitev podatkov XML v večini programskih jezikov na visoki ravni. C ++ ni izjema. Tu so najbolj priljubljene knjižnice C ++ za razčlenitev podatkov XML:
- RapidXML
- PugiXML
- TinyXML
Kot že ime pove, je RapidXML osredotočen predvsem na hitrost in je knjižnica za razčlenjevanje v slogu DOM. PugiXML podpira pretvorbo Unicode. Morda boste želeli uporabiti PugiXML, če želite pretvoriti dokument UTF-16 v UTF-8. TinyXML je minimalna različica za razčlenitev podatkov XML in ni tako hitra v primerjavi s prejšnjima dvema. Če želite samo opraviti delo in vas ne skrbi hitrost, lahko izberete TinyXML.
Primeri
Zdaj imamo osnovno razumevanje knjižnic za razčlenjevanje XML in XML v jeziku C++. Oglejmo si zdaj nekaj primerov za razčlenitev datoteke xml v jeziku C ++:
- Primer-1: Razčlenite XML v jeziku C ++ z uporabo RapidXML
- Primer-2: Razčlenite XML v jeziku C ++ z uporabo PugiXML
- Primer-3: Razčlenite XML v jeziku C ++ s pomočjo TinyXML
V vsakem od teh primerov bomo za razčlenitev vzorčne datoteke XML uporabili ustrezne knjižnice.
Primer-1: Razčlenite XML v jeziku C ++ z uporabo RapidXML
V tem primeru bomo pokazali, kako razčleniti xml z uporabo knjižnice RapidXML v jeziku C++. Tu je vhodna datoteka XML (vzorec.xml):
Naš cilj tukaj je razčleniti zgornjo datoteko XML s pomočjo C++. Tukaj je program C ++ za razčlenitev podatkov XML z uporabo RapidXML. Knjižnico RapidXML lahko prenesete od tukaj.
#include#include
#include
#include "rapidxml.hpp "
uporaba imenskega prostora std;
uporaba imenskega prostora rapidxml;
xml_document <> dok
xml_node <> * root_node = NULL;
int main (void)
cout << "\nParsing my students data (sample.xml)… " << endl;
// Preberi vzorec.xml datoteko
ifstream theFile ("vzorec.xml ");
vektor
medpomnilnik.push_back ('\ 0');
// Razčlenitev medpomnilnika
doc.razčleni<0>(& medpomnilnik [0]);
// Poiščite korensko vozlišče
root_node = dok.first_node ("MyStudentsData");
// Iteracija nad študentskimi vozlišči
za (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") -> value ();
cout << endl;
// Interes nad imeni študentov
za (xml_node <> * ime_studenta_node = student_node-> first_node ("Ime"); ime_ucena_v vozlišcu;
cout << "Student Name = " << student_name_node->vrednost ();
cout << endl;
cout << endl;
vrnitev 0;
Primer-2: Razčlenite XML v jeziku C ++ s pomočjo PugiXML
V tem primeru bomo pokazali, kako razčleniti xml z uporabo knjižnice PugiXML v C++. Tu je vhodna datoteka XML (vzorec.xml):
V tem primeru bomo pokazali, kako razčleniti xml z uporabo knjižnice pugixml v C++. Knjižnico PugiXML lahko prenesete od tukaj.
#include#include "pugixml.hpp "
uporaba imenskega prostora std;
uporaba imenskega prostora pugi;
int main ()
cout << "\nParsing employees data (sample.xml)… \n\n";
xml_document doc;
// naložimo datoteko XML
če (!doc.load_file ("vzorec.xml ")) return -1;
xml_node tools = dok.otrok ("EmployeesData").otrok ("Zaposleni");
for (xml_node_iterator it = tools.začeti(); to != orodja.konec (); ++ it)
cout << "Employees:";
za (xml_attribute_iterator ait = it-> attributes_begin (); ait != it-> lastnosti_konca (); ++ ait)
cout << " " << ait->ime () << "=" << ait->vrednost ();
cout << endl;
cout << endl;
vrnitev 0;
Primer-3: Razčlenite XML v jeziku C ++ s pomočjo TinyXML
V tem primeru bomo pokazali, kako razčleniti xml z uporabo knjižnice TinyXML v C++. Tu je vhodna datoteka XML (vzorec.xml):
V tem primeru programa bomo pokazali, kako razčleniti xml z uporabo knjižnice TinyXML v C++. Knjižnico TinyXML lahko prenesete od tukaj.
#include#include
#include
#include "tinyxml2.cpp "
uporaba imenskega prostora std;
z uporabo imenskega prostora tinyxml2;
int main (void)
cout << "\nParsing my students data (sample.xml)… " << endl;
// Preberi vzorec.xml datoteko
XMLDocument doc;
doc.LoadFile ("vzorec.xml ");
const char * naslov = dok.FirstChildElement ("MyStudentsData") -> FirstChildElement ("Student") -> GetText ();
printf ("Ime študenta:% s \ n", naslov);
XMLText * textNode = dok.LastChildElement ("MyStudentsData") -> LastChildElement ("Student") -> FirstChild () -> ToText ();
title = textNode-> Value ();
printf ("Ime študenta:% s \ n", naslov);
vrnitev 0;
Zaključek
V tem članku smo na kratko razpravljali o XML in preučili tri različne primere, kako razčleniti XML v jeziku C++. TinyXML je minimalistična knjižnica za razčlenjevanje podatkov XML. Večina programerjev za razčlenitev podatkov XML večinoma uporablja RapidXML ali PugiXML.