Ugrás a tartalomhoz

TinyXML

A Wikiszótárból, a nyitott szótárból


Főnév

TinyXML (tsz. TinyXMLs)

  1. (informatika) A TinyXML egy könnyűsúlyú, egyszerűen használható XML feldolgozó könyvtár C++-hoz. Nyílt forráskódú és ideális kisebb XML dokumentumok olvasására, írására és módosítására. Bár nem tartalmaz teljes XPath vagy XSLT támogatást, alapvető XML-feldolgozásra kiválóan alkalmas.

Telepítés és használat

A TinyXML letölthető a GitHub-ról, de sok fejlesztői környezetben (pl. Linux alatt apt-get install libtinyxml2-dev) is elérhető.

1. Telepítés lépései

Ha manuálisan szeretnéd használni: 1. Töltsd le a TinyXML forráskódját. 2. Fordítsd le és illeszd be a projektedbe. 3. Includold a megfelelő fájlokat:

#include "tinyxml2.h"
using namespace tinyxml2;

Alapvető használati példák

1. XML fájl beolvasása

Például legyen egy pelda.xml fájl:

<root>
    <gyerek nev="Anna" kor="5"/>
    <gyerek nev="Béla" kor="7"/>
</root>

Kód a beolvasásra:

#include <iostream>
#include "tinyxml2.h"

using namespace tinyxml2;
using namespace std;

int main() {
    XMLDocument doc;
    if (doc.LoadFile("pelda.xml") != XML_SUCCESS) {
        cout << "Hiba az XML beolvasásakor!" << endl;
        return 1;
    }

    XMLElement* root = doc.FirstChildElement("root");
    if (root == nullptr) {
        cout << "Nem található a root elem!" << endl;
        return 1;
    }

    for (XMLElement* elem = root->FirstChildElement("gyerek"); elem != nullptr; elem = elem->NextSiblingElement("gyerek")) {
        const char* nev = elem->Attribute("nev");
        int kor;
        elem->QueryIntAttribute("kor", &kor);
        cout << "Gyerek: " << (nev ? nev : "N/A") << ", Kor: " << kor << endl;
    }

    return 0;
}

Eredmény:

Gyerek: Anna, Kor: 5
Gyerek: Béla, Kor: 7

2. Új XML létrehozása és mentése

Ha létre akarunk hozni egy új XML dokumentumot és fájlba menteni:

#include <iostream>
#include "tinyxml2.h"

using namespace tinyxml2;
using namespace std;

int main() {
    XMLDocument doc;

    // Gyökérelem létrehozása
    XMLElement* root = doc.NewElement("root");
    doc.InsertFirstChild(root);

    // Első gyermek
    XMLElement* child1 = doc.NewElement("gyerek");
    child1->SetAttribute("nev", "Anna");
    child1->SetAttribute("kor", 5);
    root->InsertEndChild(child1);

    // Második gyermek
    XMLElement* child2 = doc.NewElement("gyerek");
    child2->SetAttribute("nev", "Béla");
    child2->SetAttribute("kor", 7);
    root->InsertEndChild(child2);

    // Mentés fájlba
    doc.SaveFile("uj_pelda.xml");

    cout << "XML létrehozva és mentve!" << endl;
    return 0;
}

Ez a kód egy uj_pelda.xml fájlt hoz létre a következő tartalommal:

<root>
    <gyerek nev="Anna" kor="5"/>
    <gyerek nev="Béla" kor="7"/>
</root>

Összegzés

A TinyXML egy könnyen használható XML könyvtár, amely: ✔ Egyszerű XML beolvasást és írást biztosít.
✔ Kicsi, gyors és hatékony C++-ban.
✔ Nem igényel külső függőségeket.