J'utilise boost :: property_tree pour lire et écrire des fichiers de configuration XML dans mon application. Mais quand j'écris le fichier, la sortie semble plutôt moche avec beaucoup de lignes vides dans le fichier. Le problème est qu'il est supposé être édité par des humains aussi, donc j'aimerais avoir un meilleur résultat.boost :: property_tree XML jolie impression
À titre d'exemple, j'ai écrit un petit programme de test:
#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 contient:
<?xml version="1.0" ?>
<config>
<net>
<listenPort>10420</listenPort>
</net>
</config>
après l'exécution du programme file2.xml contient:
<?xml version="1.0" encoding="utf-8"?>
<config>
<net>
<listenPort>10420</listenPort>
</net>
</config>
Est Y at-il un moyen d'avoir une meilleure sortie, autre que d'aller manuellement à travers la sortie et la suppression des lignes vides?
boost :: property_tree utilise un analyseur XML appelé RapidXML, http://rapidxml.sourceforge.net/. Les deux boost :: property_tree et RapidXML sont maintenus par Marcin Kalicinski. Je vous suggère de le contacter directement. Vous pouvez trouver son adresse mail sur la page d'accueil de RapidXML. – user763305
merci ildjarn pour l'édition, mais les lignes vides sont là pour une raison!Btw question posée au mainteneur, je posterai la réponse s'il y en a une – foke