In diesem Artikel werden wir diskutieren, wie Sie XML in C ++ - Programmiersprache analysieren können. Wir werden mehrere Arbeitsbeispiele sehen, um den XML -Parsing -Mechanismus in C zu verstehen++.
Was ist XML?
XML ist eine Markup -Sprache und wird hauptsächlich zum Speichern und Übertragen von Daten auf organisierte Weise verwendet. XML steht für Extensible Markup -Sprache. Es ist HTML sehr ähnlich. Der XML konzentriert sich vollständig auf das Speichern und Übertragen der Daten, während die HTML zum Anzeigen der Daten auf dem Browser verwendet wird.
Eine Beispiel -XML -Datei/XML -Syntax
Hier ist eine Beispiel -XML -Datei:
Im Gegensatz zu HTML ist es eine Tag-orientierte Markup-Sprache, 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.
Analyse von Bibliotheken in C ++:
Es gibt verschiedene Bibliotheken, die XML-Daten in den meisten hochrangigen Programmiersprachen analysieren können. C ++ ist keine Ausnahme. Hier sind die beliebtesten C ++ - Bibliotheken, um XML -Daten zu analysieren:
Wie der Name schon sagt, konzentriert sich der RapidXML hauptsächlich auf Geschwindigkeit und ist eine Dom -Stil -Parsing -Bibliothek. Pugixml unterstützt die Unicode -Konvertierung. Möglicherweise möchten Sie PugixML verwenden, wenn Sie UTF-16 DOC in UTF-8 konvertieren möchten. TinyXML ist eine bare-minimum. Wenn Sie einfach den Job erledigen möchten und sich nicht um die Geschwindigkeit kümmern möchten, können Sie TinyXML wählen.
Beispiele
Jetzt haben wir ein grundlegendes Verständnis von XML- und XML -Parsing -Bibliotheken in C++. Schauen wir uns nun einige Beispiele an, um die XML -Datei in C ++ zu analysieren:
In jedem dieser Beispiele verwenden wir die jeweiligen Bibliotheken, um eine Beispiel -XML -Datei zu analysieren.
Beispiel-1: XML in C ++ unter Verwendung von RapidXML analysieren
In diesem Beispielprogramm werden wir demonstrieren, wie XML mithilfe der RapidXML -Bibliothek in C analysiert werden kann++. Hier ist die Eingabe -XML -Datei (Beispiel.xml):
Unser Ziel hier ist es, die obige XML -Datei mit C zu analysieren++. Hier ist das C ++ - Programm zur Analyse von XML -Daten mit RapidXML. Sie können die RapidXML -Bibliothek von hier herunterladen.
#enthalten
#enthalten
#enthalten
#include "RapidXML.HPP "
Verwenden von Namespace STD;
Verwenden von Namespace Rapidxml;
xml_document doc
xml_node * root_node = null;
int main (void)
Cout << "\nParsing my students data (sample.xml)… " << endl;
// das Beispiel lesen.XML -Datei
ifstream thefile ("Probe.xml ");
VektorPuffer ((iStreambuf_iterator (TheFile)), iStreambuf_iterator ());
Puffer.push_back ('\ 0');
// den Puffer analysieren
Dokument.analysieren<0>(& buffer [0]);
// Finden Sie den Stammknoten heraus
root_node = doc.First_Node ("MystudentsData");
// über die Studentenknoten iterieren
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;
// Über die Schülernamen interadieren
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;
Rückkehr 0;
Beispiel-2: Mit PugixML in C ++ in C ++ analysieren
In diesem Beispielprogramm werden wir demonstrieren, wie XML mithilfe der PugixML -Bibliothek in C analysiert werden kann++. Hier ist die Eingabe -XML -Datei (Beispiel.xml):
In diesem Beispielprogramm werden wir demonstrieren, wie XML mithilfe der PugixML -Bibliothek in C analysiert werden kann++. Sie können die Pugixml -Bibliothek von hier herunterladen.
#enthalten
#include "Pugixml.HPP "
Verwenden von Namespace STD;
Verwenden von Namespace Pugi;
int main ()
Cout << "\nParsing employees data (sample.xml)… \n\n";
xml_document doc;
// die XML -Datei laden
Wenn (!Dokument.load_file ("sample.xml ")) return -1;
xml_node tools = doc.Kind ("EmployeesData").Kind ("Mitarbeiter");
für (xml_node_iterator it = tools.Start(); Es != Werkzeuge.Ende(); ++ es)
Cout << "Employees:";
für (xml_attribute_iterator ait = it-> attributes_begin ();
ait != IT-> Attribute_end (); ++ ait)
Cout << " " << ait->Name() <<
"=" << ait->Wert();
Cout << endl;
Cout << endl;
Rückkehr 0;
Beispiel-3: XML in C ++ analysieren mit TinyXML
In diesem Beispielprogramm werden wir demonstrieren, wie XML mit der TinyXML -Bibliothek in C analysiert werden kann++. Hier ist die Eingabe -XML -Datei (Beispiel.xml):
In diesem Beispielprogramm werden wir demonstrieren, wie XML mit der TinyXML -Bibliothek in C analysiert werden kann++. Sie können die TinyXML -Bibliothek von hier herunterladen.
#enthalten
#enthalten
#enthalten
#Include "TinyXml2.CPP "
Verwenden von Namespace STD;
Verwenden von Namespace TinyXML2;
int main (void)
Cout << "\nParsing my students data (sample.xml)… " << endl;
// das Beispiel lesen.XML -Datei
Xmldocument doc;
Dokument.LoadFile ("Probe.xml ");
const char* title = doc.FirstChildElement ("MystudententsData")-> FirstChildElement ("Student")-> getText ();
printf ("Schülername: %s \ n", Titel);
XmlText* TextNode = doc.LastChildElement ("MystudententsData")-> LastChildElement ("Student")-> FirstChild ()-> TETEXT ();
title = TextNode-> value ();
printf ("Schülername: %s \ n", Titel);
Rückkehr 0;
Abschluss
In diesem Artikel haben wir XML kurz diskutiert und drei verschiedene Beispiele für die Analyse von XML in C untersucht++. TinyXML ist eine minimalistische Bibliothek für das Parsen von XML -Daten. Die meisten Programmierer verwenden hauptsächlich die RapidXML oder Pugixml, um XML -Daten zu analysieren.