C++

C++'da XML Nasıl Ayrıştırılır

C++'da XML Nasıl Ayrıştırılır

Bu yazıda, C++ programlama dilinde XML'in nasıl ayrıştırılacağını tartışacağız. C'deki XML ayrıştırma mekanizmasını anlamak için birkaç çalışma örneği göreceğiz++.

XML nedir?

XML bir biçimlendirme dilidir ve esas olarak verileri düzenli bir şekilde depolamak ve aktarmak için kullanılır. XML, Genişletilebilir İşaretleme Dili anlamına gelir. HTML'ye çok benzer. XML tamamen verileri depolamaya ve aktarmaya odaklanırken HTML, verileri tarayıcıda görüntülemek için kullanılır.

Örnek Bir XML Dosyası/XML Sözdizimi

İşte örnek bir XML dosyası:




Tom


Ejderha

HTML'den farklı olarak, etiket odaklı bir biçimlendirme dilidir ve kendi etiketimizi bir XML dosyasında tanımlayabiliriz. Yukarıdaki örnekte, “ gibi kullanıcı tanımlı birkaç etiketimiz var”. Her etiket, karşılık gelen bitiş etiketine sahip olacaktır. “”, “ için bitiş etiketidir”. Verileri düzenlemek istediğimiz kadar kullanıcı tanımlı etiket tanımlayabiliriz.

C++'da Kitaplıkları Ayrıştırma:

Üst düzey programlama dillerinin çoğunda XML verilerini ayrıştırmak için çeşitli kitaplıklar vardır. C++ bir istisna değildir. XML verilerini ayrıştırmak için en popüler C++ kitaplıkları şunlardır:

  1. RapidXML
  2. PugiXML
  3. TinyXML

Adından da anlaşılacağı gibi, RapidXML esas olarak hıza odaklanmıştır ve DOM tarzı bir ayrıştırma kitaplığıdır. PugiXML, Unicode dönüştürmeyi destekler. UTF-16 belgesini UTF-8'e dönüştürmek istiyorsanız PugiXML kullanmak isteyebilirsiniz. TinyXML, XML verilerini ayrıştırmak için minimum düzeyde bir sürümdür ve önceki iki sürümle karşılaştırıldığında o kadar hızlı değildir. Sadece işi bitirmek istiyorsanız ve hızı umursamıyorsanız, TinyXML'i seçebilirsiniz.

Örnekler
Artık, C'deki XML ve XML ayrıştırma kitaplıklarına ilişkin temel bir anlayışa sahibiz++. Şimdi C++'da xml dosyasını ayrıştırmak için birkaç örneğe bakalım:

Bu örneklerin her birinde, örnek bir XML dosyasını ayrıştırmak için ilgili kitaplıkları kullanacağız.

Örnek-1: RapidXML kullanarak XML'i C++'da ayrıştırın

Bu örnek programda, C'de RapidXML kütüphanesini kullanarak xml'nin nasıl ayrıştırılacağını göstereceğiz++. İşte giriş XML dosyası (örnek.xml):




John


Sean


Sarah

Buradaki amacımız, yukarıdaki XML dosyasını C kullanarak ayrıştırmaktır++. RapidXML kullanarak XML verilerini ayrıştırmak için C++ programı. RapidXML kitaplığını buradan indirebilirsiniz.

#Dahil etmek
#Dahil etmek
#Dahil etmek
#include "hızlıxml.hp"
ad alanı std kullanarak;
ad alanı rapidxml kullanarak;
xml_document<> belgesi
xml_node<> * root_node = NULL;
int ana(boşluk)

cout << "\nParsing my students data (sample.xml)… " << endl;
// Örneği oku.xml dosyası
ifstream theFile ("örnek.xml");
vektör arabellek((istreambuf_iterator(Dosya)), istreambuf_iterator());
tampon.push_back('\0');
// arabelleği ayrıştır
doktor.ayrıştırmak<0>(&tampon[0]);
// Kök düğümü bulun
root_node = belge.first_node("MyStudentsData");
// Öğrenci düğümleri üzerinde yineleme
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;
// Öğrenci İsimleri Üzerinde Etkileşim
for(xml_node<> * öğrenci_adı_node = öğrenci_nodu->ilk_düğüm("Ad"); öğrenci_adı_node; öğrenci_adı_node = öğrenci_adı_node->next_sibling())

cout << "Student Name =   " << student_name_node->değer();
cout << endl;

cout << endl;

0 döndür;

Örnek-2: PugiXML kullanarak XML'i C++'da ayrıştırın

Bu örnek programda, C'de PugiXML kütüphanesini kullanarak xml'nin nasıl ayrıştırılacağını göstereceğiz++. İşte giriş XML dosyası (örnek.xml):











Bu örnek programda, C'de pugixml kütüphanesini kullanarak xml'nin nasıl ayrıştırılacağını göstereceğiz++. PugiXML kitaplığını buradan indirebilirsiniz.

#Dahil etmek
#include "pugixml.hp"
ad alanı std kullanarak;
ad alanı pugi kullanarak;
int ana()

cout << "\nParsing employees data (sample.xml)… \n\n";
xml_document belgesi;
// XML dosyasını yükle
Eğer (!doktor.load_file("örnek.xml")) dönüş -1;
xml_node araçları = belge.çocuk ("Çalışan Verileri").çocuk("Çalışanlar");
için (xml_node_iterator o = araçlar.başla(); o != araçlar.son(); ++o)

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

cout << " " << ait->isim() << "=" << ait->değer();

cout << endl;

cout << endl;
0 döndür;

Örnek-3: TinyXML kullanarak XML'i C++'da ayrıştırın

Bu örnek programda, C'de TinyXML kütüphanesini kullanarak xml'nin nasıl ayrıştırılacağını göstereceğiz++. İşte giriş XML dosyası (örnek.xml):



John
Sean
Sarah

Bu örnek programda, C'de TinyXML kütüphanesini kullanarak xml'nin nasıl ayrıştırılacağını göstereceğiz++. TinyXML kitaplığını buradan indirebilirsiniz.

#Dahil etmek
#Dahil etmek
#Dahil etmek
#include "tinyxml2.cpp"
ad alanı std kullanarak;
Tinyxml2 ad alanını kullanma;
int ana(boşluk)

cout << "\nParsing my students data (sample.xml)… " << endl;
// Örneği oku.xml dosyası
XMLDocument belgesi;
doktor.LoadFile("örnek.xml");
const karakter* başlık = doc.FirstChildElement( "MyStudentsData" )->FirstChildElement( "Student" )->GetText();
printf("Öğrenci Adı: %s\n", unvan );
XMLText* textNode = belge.LastChildElement( "MyStudentsData" )->LastChildElement( "Student" )->FirstChild()->ToText();
başlık = textNode->Value();
printf("Öğrenci Adı: %s\n", unvan );
0 döndür;

Sonuç

Bu makalede, XML'i kısaca tartıştık ve C'de XML'in nasıl ayrıştırılacağına ilişkin üç farklı örneğe baktık++. TinyXML, XML verilerini ayrıştırmak için minimalist bir kitaplıktır.  Programcıların çoğu, XML verilerini ayrıştırmak için esas olarak RapidXML veya PugiXML kullanır.

Control & manage mouse movement between multiple monitors in Windows 10
Dual Display Mouse Manager lets you control & configure mouse movement between multiple monitors, by slowing down its movements near the border. Windo...
WinMouse lets you customize & improve mouse pointer movement on Windows PC
If you want to improve the default functions of your mouse pointer use freeware WinMouse. It adds more features to help you get the most out of your h...
Mouse left-click button not working on Windows 10
If you are using a dedicated mouse with your laptop, or desktop computer but the mouse left-click button is not working on Windows 10/8/7 for some rea...