Estoy usando boost :: property_tree para leer y escribir archivos de configuración XML en mi aplicación. Pero cuando escribo el archivo, el resultado se ve feo con muchas líneas vacías en el archivo. El problema es que se supone que también debe ser editado por humanos, por lo que me gustaría obtener un mejor resultado.boost :: property_tree XML pretty printing
Como ejemplo he escrito un pequeño programa de prueba:
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/xml_parser.hpp>
int main(void)
{
using boost::property_tree::ptree;
ptree pt;
// reading file.xml
read_xml("file.xml", pt);
// writing the unchanged ptree in file2.xml
boost::property_tree::xml_writer_settings<char> settings('\t', 1);
write_xml("file2.xml", pt, std::locale(), settings);
return 0;
}
file.xml contiene:
<?xml version="1.0" ?>
<config>
<net>
<listenPort>10420</listenPort>
</net>
</config>
después de ejecutar el programa de file2.xml contiene:
<?xml version="1.0" encoding="utf-8"?>
<config>
<net>
<listenPort>10420</listenPort>
</net>
</config>
Es Hay una manera de tener una mejor salida, que no sea pasar manualmente a través de la salida y eliminar las líneas vacías?
impulso :: property_tree utiliza un analizador XML llamado RapidXML, http://rapidxml.sourceforge.net/. Both boost :: property_tree y RapidXML son mantenidos por Marcin Kalicinski. Sugiero que lo contactes directamente. Puede encontrar su dirección de correo electrónico en la página de inicio de RapidXML. – user763305
gracias ildjarn por la edición, pero las líneas vacías están aquí por una razón.Por cierto pregunta al mantenedor, publicaré la respuesta si hay una – foke