C ++

XML-i sõelumine C ++ -s

XML-i sõelumine C ++ -s

Selles artiklis käsitleme XML-i sõelumist C ++ programmeerimiskeeles. C-i XML-i sõelumismehhanismi mõistmiseks näeme mitmeid töötavaid näiteid++.

Mis on XML?

XML on märgistuskeel ja seda kasutatakse peamiselt andmete organiseeritud säilitamiseks ja edastamiseks. XML tähistab eXtensible Markup Language. See on väga sarnane HTML-iga. XML on täielikult keskendunud andmete salvestamisele ja edastamisele, HTML-i kasutatakse andmete kuvamiseks brauseris.

XML-faili näidis / XML-i süntaks

Siin on XML-faili näidis:




Tom


Drake

Erinevalt HTML-ist on see märgendile orienteeritud märgistuskeel ja saame XML-failis oma sildi määratleda. Ülaltoodud näites on meil mitu kasutaja määratletud silte, näiteks”. Igal sildil on vastav lõpumärgend. "”On lõpu silt sildil“”. Saame määratleda nii palju kasutaja määratletud silte, kui soovime andmeid korrastada.

Raamatukogude analüüsimine C ++ keeles:

XML-andmete sõelumiseks on enamikus kõrgetasemelistes programmeerimiskeeltes erinevaid teeke. C ++ ei ole erand. Siin on kõige populaarsemad C ++ teegid XML-andmete sõelumiseks:

  1. RapidXML
  2. PugiXML
  3. TinyXML

Nagu nimigi ütleb, on RapidXML keskendunud peamiselt kiirusele ja see on DOM-stiilis sõelumisraamatukogu. PugiXML toetab Unicode'i teisendamist. Võite kasutada PugiXML-i, kui soovite teisendada UTF-16 doc UTF-8-ks. TinyXML on XML-andmete sõelumiseks minimaalne versioon ja mitte nii kiiresti kui eelmise kahega võrreldes. Kui soovite lihtsalt tööga hakkama saada ja kiirus ei huvita, võite valida TinyXML-i.

Näited
Nüüd on meil põhiteadmised C-i XML-i ja XML-i sõelumise teekidest++. Vaatame nüüd paari näidet xml-faili sõelumiseks C ++ -s:

Kõigis nendes näidetes kasutame vastavaid teeke XML-näidisfaili sõelumiseks.

Näide 1: XML-i sõelumine C ++ -s, kasutades RapidXML-i

Selles näidisprogrammis demonstreerime, kuidas xml-i sõeluda, kasutades RapidXML-i teeki C-s++. Siin on sisend XML-fail (näidis.xml):




John


Sean


Sarah

Meie eesmärk on siin ülaltoodud XML-fail parsida C abil++. Siin on C ++ programm XML-andmete sõelumiseks RapidXML-i abil. RapidXML-i teegi saate alla laadida siit.

# kaasata
# kaasata
# kaasata
#include "rapidxml.hpp "
nimeruumi kasutamine std;
nimeruumi rapidxml kasutamine;
xml_document <> doc
xml_node <> * root_node = NULL;
int main (tühine)

cout << "\nParsing my students data (sample.xml)… " << endl;
// Loe näidist.xml-fail
ifstream theFile ("proov.xml ");
vektor puhver ((istreambuf_iterator(theFile)), istreambuf_iterator());
puhver.push_back ('\ 0');
// Sõeluge puhver
doc.sõeluma<0>(& puhver [0]);
// Uuri välja juursõlm
root_sõlm = doc.esimene_sõlm ("MyStudentsData");
// Iterate õpilase sõlmede kohal
for (xml_node <> * student_node = root_node-> first_node ("Student"); student_node; student_node = student_node-> next_sibling ())

cout << "\nStudent Type =   " << student_node->esimene_attribuut ("õpilase_tüüp") -> väärtus ();
cout << endl;
// Suhelda õpilaste nimede üle
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->väärtus ();
cout << endl;

cout << endl;

tagastama 0;

Näide 2: XML-i sõelumine C ++ -s, kasutades PugiXML-i

Selles näidisprogrammis demonstreerime, kuidas X-i sõeluda C-s asuva PugiXML-i teegi abil++. Siin on sisend XML-fail (näidis.xml):











Selles näidisprogrammis demonstreerime, kuidas xml-i sõeluda, kasutades C-s pugixml-teeki++. PugiXML-i teegi saate alla laadida siit.

# kaasata
#include "pugixml.hpp "
nimeruumi kasutamine std;
nimeruumi pugi kasutamine;
int main ()

cout << "\nParsing employees data (sample.xml)… \n\n";
xml_document doc;
// laadige XML-fail
kui (!doc.load_file ("näidis.xml ")) return -1;
xml_node tööriistad = doc.laps ("EmployeesData").laps ("Töötajad");
for (xml_node_iterator it = tööriistad.algama (); seda != tööriistad.lõpp(); ++ see)

cout << "Employees:";
for (xml_attribute_iterator ait = it-> attributes_begin (); ait != see-> atribuudid_lõpp (); ++ ait)

cout << " " << ait->nimi () << "=" << ait->väärtus ();

cout << endl;

cout << endl;
tagastama 0;

Näide 3: XML-i sõelumine C ++ -s, kasutades TinyXML-i

Selles näidisprogrammis näitame, kuidas X-i sõeluda, kasutades C-s asuvat TinyXML-i teeki++. Siin on sisend XML-fail (näidis.xml):



John
Sean
Sarah

Selles näidisprogrammis näitame, kuidas X-i sõeluda, kasutades C-s asuvat TinyXML-i teeki++. TinyXML-i teegi saate alla laadida siit.

# kaasata
# kaasata
# kaasata
#include "tinyxml2.cpp "
nimeruumi kasutamine std;
nimeruumi tinyxml2 kasutamine;
int main (tühine)

cout << "\nParsing my students data (sample.xml)… " << endl;
// Loe näidist.xml-fail
XMLDokument dokument;
doc.LoadFile ("proov.xml ");
const char * pealkiri = dok.FirstChildElement ("MyStudentsData") -> FirstChildElement ("Student") -> GetText ();
printf ("Õpilase nimi:% s \ n", pealkiri);
XMLText * textNode = doc.LastChildElement ("MyStudentsData") -> LastChildElement ("Student") -> FirstChild () -> ToText ();
pealkiri = textNode-> Väärtus ();
printf ("Õpilase nimi:% s \ n", pealkiri);
tagastama 0;

Järeldus

Selles artiklis oleme lühidalt arutanud XML-i ja uurinud kolme erinevat näidet selle kohta, kuidas XML-i sõeluda C-s++. TinyXML on minimalistlik teek XML-andmete sõelumiseks.  Enamik programmeerijaid kasutab XML-andmete sõelumiseks peamiselt RapidXML-i või PugiXML-i.

Kuidas kasutada AutoKeyt Linuxi mängude automatiseerimiseks
AutoKey on Linuxi ja X11 töölaua automatiseerimise utiliit, mis on programmeeritud Python 3, GTK ja Qt. Selle skriptimise ja MACRO funktsionaalsuse ab...
Kuidas näidata FPS-loendurit Linuxi mängudes
Linuxi mängimine sai suure tõuke, kui Valve teatas Steam-kliendi ja nende mängude Linuxi toest 2012. aastal. Sellest ajast peale on paljud AAA- ja ind...
Sid Meieri Civilization VI allalaadimine ja mängimine Linuxis
Sissejuhatus mängu Civilization 6 on kaasaegne kontseptsioon, mis tutvustati Age of Empires mängude sarjas. Idee oli üsna lihtne; alustaksite kõige põ...