C ++

Ako analyzovať XML v C ++

Ako analyzovať XML v C ++

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:




Tom


Drake

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 „“. Každá značka bude mať zodpovedajúcu koncovú značku. „”Je koncová značka pre““. Môžeme definovať toľko značiek definovaných používateľom, koľko chceme usporiadať údajov.

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:

  1. RapidXML
  2. PugiXML
  3. 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 ++:

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):




Ján


Sean


Sarah

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 medzipamäť ((istreambuf_iterator(theFile)), istreambuf_iterator());
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):



Ján
Sean
Sarah

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.

Hry Nainštalujte si najnovší Dolphin Emulator pre Gamecube a Wii na Linuxe
Nainštalujte si najnovší Dolphin Emulator pre Gamecube a Wii na Linuxe
Emulátor Dolphin vám umožní hrať vybrané hry Gamecube a Wii na osobných počítačoch Linux (PC). Emulátor Dolphin, ktorý je voľne dostupným emulátorom ...
Hry Ako používať GameConqueror Cheat Engine v Linuxe
Ako používať GameConqueror Cheat Engine v Linuxe
Tento článok obsahuje sprievodcu používaním cheatovacieho modulu GameConqueror v systéme Linux. Mnoho používateľov, ktorí hrajú hry v systéme Windows,...
Hry Najlepšie emulátory herných konzol pre systém Linux
Najlepšie emulátory herných konzol pre systém Linux
V tomto článku je uvedený zoznam populárneho softvéru na emuláciu herných konzol, ktorý je k dispozícii pre systém Linux. Emulácia je vrstva kompatibi...