Recientemente revisé un grupo de bibliotecas XML específicamente para generar código XML.
Resumen ejecutivo: elegí ir con TinyXML++.
TinyXML ++ tiene una sintaxis decente C++, está construido en las librerías maduras TinyXML C, es libre & de código abierto (licencia MIT) y pequeño. En resumen, ayuda a hacer el trabajo rápidamente. He aquí un fragmento rápida:
Document doc;
Node* root(doc.InsertEndChild(Element("RootNode")));
Element measurements("measurements");
Element tbr("TotalBytesReceived", 12);
measurements.InsertEndChild(tbr);
root->InsertEndChild(measurements);
que produce:
<RootNode>
<measurements>
<TotalBytesReceived>12</TotalBytesReceived>
</measurements>
</RootNode>
He sido muy feliz con ella.
He revisado muchos otros; aquí están algunos de los mejores contendientes:
Xerces: The king-daddy. ¿Tiene todo (especialmente cuando se combina con Xalan) pero es pesado y fuerza la administración de la memoria en el usuario.
RapidXML: Excelente para el análisis (que es un programa de análisis in-situ y es rápido ) pero no es bueno para la generación desde la adición de nodos para el DOM requiere la gestión de memoria.
Boost.XML (propuesta): Aspecto excelente - poderosa, excelente sintaxis de C++. Sin embargo, aún no ha pasado por el proceso de revisión, no es compatible y la interfaz puede cambiar. Casi lo usé de todos modos. Esperando su aceptación en Boost.
Libxml (++): Muy bueno; sintaxis decente y decente Pero es muy grande si todo lo que hace es generando XML y está vinculado a la biblioteca glibmm (para ustring). Si fuéramos solo en Linux (¿como usted?) Lo consideraría seriamente.
XiMOL: Biblioteca única basada en secuencias. Esto fue un poco demasiado simplista para nuestras necesidades, pero para la generación básica de XML, puede que le resulte bastante útil. La sintaxis de la secuencia es bastante clara.
¡Espero que haya algo allí de alguna utilidad!
He usado [libxml ++] (http://libxmlplusplus.sourceforge.net/) para generar XML, pero no puedo garantizar que sea la manera más fácil. :-) –