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:
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
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:
- RapidXML
- PugiXML
- 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:
- Näide 1: XML-i sõelumine C ++ -s, kasutades RapidXML-i
- Näide 2: XML-i sõelumine C ++ -s, kasutades PugiXML-i
- Näide 3: XML-i sõelumine C ++ -s, kasutades TinyXML-i
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):
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.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):
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.