C++:
Trabajando con XML

Cómo hacerlo:

Aquí hay una manera simple de analizar XML utilizando la biblioteca TinyXML-2:

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

int main() {
    tinyxml2::XMLDocument doc;
    doc.Parse("<root><message>Hola, Mundo!</message></root>");
    const char* contenido = doc.FirstChildElement("root")->FirstChildElement("message")->GetText();
    std::cout << contenido << std::endl;
    return 0;
}

Salida de ejemplo:

Hola, Mundo!

Y así es cómo creas un archivo XML:

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

int main() {
    tinyxml2::XMLDocument doc;
    auto* declaracion = doc.NewDeclaration();
    doc.InsertFirstChild(declaracion);
    auto* root = doc.NewElement("root");
    doc.InsertEndChild(root);
    auto* mensaje = doc.NewElement("message");
    mensaje->SetText("Hola, Mundo!");
    root->InsertEndChild(mensaje);
    doc.SaveFile("salida.xml");
    return 0;
}

Esto genera un archivo XML salida.xml con los contenidos:

<?xml version="1.0"?>
<root>
    <message>Hola, Mundo!</message>
</root>

Análisis Profundo

XML ha sido pivotal en los servicios web y el almacenamiento de datos desde finales de los ‘90. Aunque JSON y YAML son ahora más comunes para configuración e interoperabilidad, XML sigue siendo enorme en muchos sistemas empresariales. Analizar XML en C++ puede sentirse anticuado con el análisis DOM/SAX manual. Afortunadamente, bibliotecas como TinyXML-2 lo simplifican. C++ no tiene soporte integrado para XML; bibliotecas como TinyXML-2, pugixml o Xerces solventan las partes difíciles.

Ver También