C++

So analysieren Sie XML in C++

So analysieren Sie XML in C++

In diesem Artikel werden wir diskutieren, wie man XML in der Programmiersprache C++ analysiert. Wir werden mehrere Arbeitsbeispiele sehen, um den XML-Parsing-Mechanismus in C . zu verstehen++.

Was ist XML??

XML ist eine Auszeichnungssprache und wird hauptsächlich zum organisierten Speichern und Übertragen von Daten verwendet. XML steht für eXtensible Markup Language. Es ist HTML sehr ähnlich. Das XML konzentriert sich vollständig auf das Speichern und Übertragen der Daten, während das HTML für die Anzeige der Daten im Browser verwendet wird.

Ein Beispiel für eine XML-Datei/XML-Syntax

Hier ist eine XML-Beispieldatei:




Tom


Erpel

Im Gegensatz zu HTML handelt es sich um eine Tag-orientierte Auszeichnungssprache, und wir können unser eigenes Tag in einer XML-Datei definieren. Im obigen Beispiel haben wir mehrere benutzerdefinierte Tags wie „”. Jedes Tag hat das entsprechende End-Tag. “” ist das End-Tag für “”. Wir können so viele benutzerdefinierte Tags definieren, wie wir die Daten organisieren möchten.

Parsen von Bibliotheken in C++:

Es gibt verschiedene Bibliotheken zum Parsen von XML-Daten in den meisten höheren Programmiersprachen. C++ ist keine Ausnahme. Hier sind die beliebtesten C++-Bibliotheken zum Parsen von XML-Daten:

  1. RapidXML
  2. PugiXML
  3. TinyXML

Wie der Name schon sagt, konzentriert sich RapidXML hauptsächlich auf Geschwindigkeit und ist eine Parsing-Bibliothek im DOM-Stil. PugiXML unterstützt Unicode-Konvertierung. Sie können PugiXML verwenden, wenn Sie UTF-16-Dokumente in UTF-8 konvertieren möchten. TinyXML ist eine minimale Version zum Parsen von XML-Daten und nicht so schnell im Vergleich zu den beiden vorherigen. Wenn Sie nur die Arbeit erledigen möchten und sich nicht um die Geschwindigkeit kümmern, können Sie TinyXML wählen.

Beispiele
Jetzt haben wir ein grundlegendes Verständnis von XML und XML-Parsing-Bibliotheken in C++. Sehen wir uns nun ein paar Beispiele zum Parsen einer XML-Datei in C++ an:

In jedem dieser Beispiele verwenden wir die entsprechenden Bibliotheken, um eine XML-Beispieldatei zu analysieren.

Beispiel-1: Parsen von XML in C++ mit RapidXML

In diesem Beispielprogramm zeigen wir, wie man XML mit der RapidXML-Bibliothek in C analysiert++. Hier ist die XML-Eingabedatei (Beispielsam.xml):




John


Sean


Sarah

Unser Ziel hier ist es, die obige XML-Datei mit C . zu parsen++. Hier ist das C++-Programm zum Parsen von XML-Daten mit RapidXML. Sie können die RapidXML-Bibliothek von Hier herunterladen.

#einschließen
#einschließen
#einschließen
#include "rapidxml.hpp"
Verwenden von Namespace-Std;
Verwenden des Namensraums rapidxml;
xml_document<> doc
xml_node<> * root_node = NULL;
int main(void)

cout << "\nParsing my students data (sample.xml)… " << endl;
// Lesen Sie die Probe.xml-Datei
ifstream theFile ("sample.xml");
Vektor Puffer((istreambuf_iterator(theFile)), istreambuf_iterator());
Puffer.push_back('\0');
// Parsen des Puffers
doc.analysieren<0>(&puffer[0]);
// Finde den Wurzelknoten heraus
root_node = doc.first_node("MyStudentsData");
// Iteriere über die Schülerknoten
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("student_type")->value();
cout << endl;
// Interate über die Schülernamen
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->Wert();
cout << endl;

cout << endl;

0 zurückgeben;

Beispiel-2: Parsen von XML in C++ mit PugiXML

In diesem Beispielprogramm zeigen wir, wie man XML mit der PugiXML-Bibliothek in C analysiert++. Hier ist die XML-Eingabedatei (Beispielsam.xml):











In diesem Beispielprogramm zeigen wir, wie man XML mit der pugixml-Bibliothek in C analysiert++. Sie können die PugiXML-Bibliothek von Hier herunterladen.

#einschließen
#include "pugixml.hpp"
Verwenden von Namespace-Std;
Verwenden von Namespace-Pugi;
int main()

cout << "\nParsing employees data (sample.xml)… \n\n";
xml_document doc;
// Laden Sie die XML-Datei
wenn (!doc.load_file("Beispiel.xml")) return -1;
xml_node tools = doc.child("EmployeesData").child("Mitarbeiter");
für (xml_node_iterator it = tools.Start(); es != Werkzeuge.Ende(); ++ es)

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

cout << " " << ait->Name() << "=" << ait->Wert();

cout << endl;

cout << endl;
0 zurückgeben;

Beispiel-3: Parsen von XML in C++ mit TinyXML

In diesem Beispielprogramm zeigen wir, wie man XML mit der TinyXML-Bibliothek in C analysiert++. Hier ist die XML-Eingabedatei (Beispielsam.xml):



John
Sean
Sarah

In diesem Beispielprogramm zeigen wir, wie man XML mit der TinyXML-Bibliothek in C analysiert++. Sie können die TinyXML-Bibliothek von Hier herunterladen.

#einschließen
#einschließen
#einschließen
#include "tinyxml2".cpp"
Verwenden von Namespace-Std;
Verwenden des Namensraums tinyxml2;
int main(void)

cout << "\nParsing my students data (sample.xml)… " << endl;
// Probe lesen.xml-Datei
XMLDocument-Dokument;
doc.LoadFile( "Beispiel.xml" );
const char* title = doc.FirstChildElement( "MyStudentsData" )->FirstChildElement( "Student" )->GetText();
printf( "Schülername: %s\n", Titel );
XMLText* textNode = doc.LastChildElement( "MyStudentsData" )->LastChildElement( "Student" )->FirstChild()->ToText();
title = textNode->Value();
printf( "Schülername: %s\n", Titel );
0 zurückgeben;

Fazit

In diesem Artikel haben wir XML kurz besprochen und uns drei verschiedene Beispiele für das Parsen von XML in C . angesehen++. TinyXML ist eine minimalistische Bibliothek zum Parsen von XML-Daten.  Die meisten Programmierer verwenden hauptsächlich RapidXML oder PugiXML, um XML-Daten zu analysieren.

So steigern Sie die FPS unter Linux?
FPS steht für Bilder pro Sekunde. Die Aufgabe von FPS besteht darin, die Bildrate bei Videowiedergaben oder Spielleistungen zu messen. In einfachen Wo...
Top Oculus App Lab-Spiele
Wenn Sie Besitzer eines Oculus-Headsets sind, müssen Sie über Sideloading informiert sein. Sideloading ist der Prozess der Installation von Inhalten, ...
Top 10 Spiele zum Spielen auf Ubuntu
Die Windows-Plattform war eine der dominierenden Plattformen für Spiele aufgrund des großen Prozentsatzes von Spielen, die heute entwickelt werden, um...