C ++

Az XML elemzése C ++ nyelven

Az XML elemzése C ++ nyelven

Ebben a cikkben megvitatjuk az XML elemzését C ++ programozási nyelven. Számos működő példát fogunk látni az XML elemzési mechanizmus megértéséhez C-ben++.

Mi az XML?

Az XML egy jelölő nyelv, és főleg szervezett módon tárolja és továbbítja az adatokat. Az XML az eXtensible Markup Language rövidítést jelenti. Nagyon hasonlít a HTML-hez. Az XML teljes mértékben az adatok tárolására és átadására összpontosít, míg a HTML-t használják az adatok megjelenítésére a böngészőben.

Minta XML fájl / XML szintaxis

Itt van egy minta XML fájl:




Tom


Gácsér

A HTML-től eltérően ez egy címkeorientált jelölőnyelv, és saját címkét meghatározhatunk egy XML fájlban. A fenti példában számos felhasználó által definiált címke van, például:”. Minden címkének meg lesz a megfelelő befejező címke. „”A„”. Annyi felhasználó által definiált címkét határozhatunk meg, ahányszor szeretnénk az adatokat rendezni.

A könyvtárak elemzése C ++ nyelven:

Különböző könyvtárak vannak az XML-adatok elemzésére a legtöbb magas szintű programozási nyelvben. A C ++ nem kivétel. Az XML-adatok elemzéséhez a legnépszerűbb C ++ könyvtárak találhatók:

  1. RapidXML
  2. PugiXML
  3. TinyXML

Ahogy a neve is sugallja, a RapidXML elsősorban a sebességre összpontosít, és ez egy DOM stílusú elemző könyvtár. A PugiXML támogatja az Unicode konverziót. Érdemes használni a PugiXML-t, ha az UTF-16 doc-ot UTF-8-ba szeretné konvertálni. A TinyXML egy minimális verzió az XML adatok elemzéséhez, és nem olyan gyorsan, mint az előző kettőhöz képest. Ha csak el akarja végezni a munkát, és nem érdekel a sebesség, választhatja a TinyXML-t.

Példák
Most alapvető ismereteink vannak az XML és XML elemző könyvtárakról a C-ben++. Most nézzünk meg néhány példát az xml fájl elemzésére a C ++ nyelven:

Ezen példák mindegyikében a megfelelő könyvtárakat használjuk egy minta XML fájl elemzésére.

1. példa: XML elemzése C ++ nyelven RapidXML használatával

Ebben a példaprogramban bemutatjuk, hogyan elemezzük az xml-et a RapidXML könyvtár segítségével a C-ben++. Itt van a bemeneti XML fájl (minta.xml):




János


Sean


Sára

Célunk a fenti XML fájl elemzése a C használatával++. Itt található a C ++ program az XML adatok elemzéséhez a RapidXML segítségével. A RapidXML könyvtárat innen töltheti le.

#include
#include
#include
#include "rapidxml.hpp "
névtér használata std;
névtér gyorsxml használata;
xml_document <> doc
xml_node <> * root_node = NULL;
int main (érvénytelen)

cout << "\nParsing my students data (sample.xml)… " << endl;
// Olvassa el a mintát.xml fájl
ifstream theFile ("minta.xml ");
vektor puffer ((istreambuf_iterator(theFile)), istreambuf_iterator());
puffer.push_back ('\ 0');
// A puffer elemzése
doc.elemzés<0>(& puffer [0]);
// Tudja meg a gyökércsomópontot
root_csomópont = doc.first_node ("SajátStudentsData");
// A hallgatói csomópontok felett iterálunk
for (xml_node <> * student_node = root_node-> first_node ("Student"); student_node; student_node = student_node-> next_sibling ())

cout << "\nStudent Type =   " << student_node->first_attribute ("hallgatótípus") -> érték ();
cout << endl;
// Interakció a diáknevek felett
for (xml_csomópont <> * hallgatónév_csomópont = tanuló_csomó-> első_csomópont ("Név"); hallgató_név_csomópont;

cout << "Student Name =   " << student_name_node->érték();
cout << endl;

cout << endl;

visszatér 0;

2. példa: XML elemzése C ++ nyelven a PugiXML használatával

Ebben a példaprogramban bemutatjuk, hogyan elemezzük az xml-t a C-ben lévő PugiXML könyvtár segítségével++. Itt van a bemeneti XML fájl (minta.xml):











Ebben a példaprogramban bemutatjuk, hogyan elemezzük az xml-t a C-ben található pugixml könyvtár segítségével++. A PugiXML könyvtárat innen töltheti le.

#include
#include "pugixml.hpp "
névtér használata std;
névtér használata pugi;
int main ()

cout << "\nParsing employees data (sample.xml)… \n\n";
xml_document doc;
// betölti az XML fájlt
ha (!doc.load_file ("minta.xml ")) return -1;
xml_node tools = doc.gyermek ("EmployeesData").gyermek ("Alkalmazottak");
for (xml_node_iterator it = eszközök.kezdődik(); azt != eszközök.vége (); ++ it)

cout << "Employees:";
for (xml_attribute_iterator ait = it-> attributes_begin (); ait != it-> attributes_end (); ++ ait)

cout << " " << ait->név() << "=" << ait->érték();

cout << endl;

cout << endl;
visszatér 0;

3. példa: XML elemzése C ++ nyelven a TinyXML segítségével

Ebben a példaprogramban bemutatjuk, hogyan elemezzük az xml-t a C TinyXML könyvtár segítségével++. Itt van a bemeneti XML fájl (minta.xml):



János
Sean
Sára

Ebben a példaprogramban bemutatjuk, hogyan elemezzük az xml-t a C TinyXML könyvtár segítségével++. A TinyXML könyvtárat innen töltheti le.

#include
#include
#include
#include "tinyxml2.cpp "
névtér használata std;
névtér használata tinyxml2;
int main (érvénytelen)

cout << "\nParsing my students data (sample.xml)… " << endl;
// Olvassa el a mintát.xml fájl
XMLDocument doc;
doc.LoadFile ("minta.xml ");
const char * title = dok.FirstChildElement ("MyStudentsData") -> FirstChildElement ("Student") -> GetText ();
printf ("Tanuló neve:% s \ n", cím);
XMLText * textNode = doc.LastChildElement ("MyStudentsData") -> LastChildElement ("Student") -> FirstChild () -> ToText ();
title = textNode-> Érték ();
printf ("Tanuló neve:% s \ n", cím);
visszatér 0;

Következtetés

Ebben a cikkben röviden megvitattuk az XML-t, és három különböző példát kerestünk az XML elemzésének módjára C-ben++. A TinyXML egy minimalista könyvtár az XML adatok elemzéséhez.  A legtöbb programozó elsősorban a RapidXML-t vagy a PugiXML-t használja az XML adatok elemzéséhez.

Az egérkattintások emulálása az egérrel a Clickless Mouse használatával a Windows 10 rendszerben
Ha az egeret vagy a billentyűzetet nem megfelelő testtartásban, túlzott használat mellett használhatja, számos egészségügyi problémát okozhat, beleért...
Ezekkel az ingyenes eszközökkel adja hozzá az egérmozdulatokat a Windows 10 rendszerhez
Az elmúlt években a számítógépek és az operációs rendszerek nagymértékben fejlődtek. Volt idő, amikor a felhasználóknak parancsokkal kellett navigálni...
Az egér mozgásának vezérlése és kezelése több monitor között a Windows 10 rendszerben
Dual Display Mouse Manager lehetővé teszi az egér mozgásának vezérlését és konfigurálását több monitor között, lassítva annak mozgását a határ közeléb...