V tomto článku sa chystáme diskutovať o tom, ako analyzovať XML v programovacom jazyku C ++. Uvidíme niekoľko pracovných príkladov na pochopenie mechanizmu syntaktickej analýzy XML v jazyku C++.
Čo je to XML?
XML je značkovací jazyk a používa sa hlavne na organizované ukladanie a prenos údajov. XML je skratka pre eXtensible Markup Language. Je to veľmi podobné HTML. XML je úplne zameraný na ukladanie a prenos dát, zatiaľ čo HTML sa používa na zobrazenie údajov v prehliadači.
Vzorový súbor XML / syntax XML
Tu je ukážka súboru XML:
Na rozdiel od HTML je to značkovací jazyk orientovaný na značku a svoju vlastnú značku môžeme definovať v súbore XML. Vo vyššie uvedenom príklade máme niekoľko používateľom definovaných značiek, napríklad „
Analýza knižníc v C ++:
Existuje mnoho knižníc na analýzu údajov XML vo väčšine programovacích jazykov na vysokej úrovni. C ++ nie je výnimkou. Tu sú najobľúbenejšie knižnice C ++ na analýzu údajov XML:
- RapidXML
- PugiXML
- TinyXML
Ako už názov napovedá, RapidXML je zameraný hlavne na rýchlosť a je to knižnica na analýzu štýlu DOM. PugiXML podporuje prevod Unicode. Možno budete chcieť použiť PugiXML, ak chcete previesť dokument UTF-16 na UTF-8. TinyXML je minimálna verzia na analýzu údajov XML a nie taká rýchla v porovnaní s predchádzajúcimi dvoma. Ak chcete prácu dokončiť a nestaráte sa o rýchlosť, môžete zvoliť TinyXML.
Príklady
Teraz máme základné znalosti o knižniciach XML a XML rozoberaných v jazyku C++. Pozrime sa teraz na niekoľko príkladov na analýzu súboru XML v C ++:
- Príklad 1: Analyzujte XML v C ++ pomocou RapidXML
- Príklad-2: Analýza XML v C ++ pomocou PugiXML
- Príklad 3: Analyzujte XML v C ++ pomocou TinyXML
V každom z týchto príkladov použijeme príslušné knižnice na analýzu vzorového súboru XML.
Príklad 1: Analyzujte XML v C ++ pomocou RapidXML
V tomto príklade programu si ukážeme, ako analyzovať xml pomocou knižnice RapidXML v jazyku C++. Tu je vstupný súbor XML (vzor.xml):
Naším cieľom je tu analyzovať vyššie uvedený súbor XML pomocou programu C++. Tu je program C ++ na analýzu údajov XML pomocou RapidXML. Knižnicu RapidXML si môžete stiahnuť tu.
#include#include
#include
#include „rapidxml.hpp "
pomocou namespace std;
pomocou menného priestoru rapidxml;
xml_document <> doc
xml_node <> * root_node = NULL;
int main (void)
cout << "\nParsing my students data (sample.xml)… " << endl;
// Prečítajte si ukážku.xml súbor
ifstream theFile ("vzorka.xml ");
vektor
nárazník.push_back ('\ 0');
// Analyzujte vyrovnávaciu pamäť
doc.analyzovať<0>(& vyrovnávacia pamäť [0]);
// Zistite koreňový uzol
root_node = doc.first_node ("MyStudentsData");
// Iterácia cez študentské uzly
pre (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;
// Interakcia nad menami študentov
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->hodnota ();
cout << endl;
cout << endl;
návrat 0;
Príklad-2: Analyzujte XML v C ++ pomocou PugiXML
V tomto príklade programu si ukážeme, ako analyzovať xml pomocou knižnice PugiXML v jazyku C++. Tu je vstupný súbor XML (vzor.xml):
V tomto príklade programu si ukážeme, ako analyzovať xml pomocou knižnice pugixml v jazyku C++. Knižnicu PugiXML si môžete stiahnuť tu.
#include#include „pugixml.hpp "
pomocou namespace std;
pomocou menného priestoru pugi;
int main ()
cout << "\nParsing employees data (sample.xml)… \n\n";
xml_document doc;
// načítanie súboru XML
ak (!doc.load_file ("vzorka.xml ")) návrat -1;
xml_node tools = doc.dieťa („ZamestnanciDáta“).dieťa („zamestnanci“);
for (xml_node_iterator it = tools.začať(); to != nástroje.koniec(); ++ it)
cout << "Employees:";
pre (xml_attribute_iterator ait = it-> attributes_begin (); ait != it-> attributes_end (); ++ ait)
cout << " " << ait->názov() << "=" << ait->hodnota ();
cout << endl;
cout << endl;
návrat 0;
Príklad 3: Analyzujte XML v C ++ pomocou TinyXML
V tomto príklade programu si ukážeme, ako analyzovať xml pomocou knižnice TinyXML v jazyku C++. Tu je vstupný súbor XML (vzor.xml):
V tomto príklade programu si ukážeme, ako analyzovať xml pomocou knižnice TinyXML v jazyku C++. Knižnicu TinyXML si môžete stiahnuť tu.
#include#include
#include
#include „tinyxml2.cpp "
pomocou namespace std;
pomocou menného priestoru tinyxml2;
int main (void)
cout << "\nParsing my students data (sample.xml)… " << endl;
// Prečítajte si ukážku.xml súbor
XMLDocument doc;
doc.LoadFile ("vzorka.xml ");
const char * title = doc.FirstChildElement ("MyStudentsData") -> FirstChildElement ("Študent") -> GetText ();
printf ("Meno studenta:% s \ n", nadpis);
XMLText * textNode = doc.LastChildElement ("MyStudentsData") -> LastChildElement ("Študent") -> FirstChild () -> ToText ();
title = textNode-> Hodnota ();
printf ("Meno studenta:% s \ n", nadpis);
návrat 0;
Záver
V tomto článku sme stručne diskutovali o XML a zaoberali sme sa tromi rôznymi príkladmi, ako analyzovať XML v jazyku C++. TinyXML je minimalistická knižnica na analýzu údajov XML. Väčšina programátorov používa na analýzu údajov XML hlavne RapidXML alebo PugiXML.