void debug_settings::load(const std::string &filename)
{
// Create empty property tree object
pt::ptree tree, subtree;
// Parse the XML into the property tree.
pt::read_xml(filename, tree);
BOOST_FOREACH(pt::ptree::value_type &v, tree.get_child("model"))
{
subtree = v.second;
BOOST_FOREACH(pt::ptree::value_type &v2, subtree)
{
std::cout << v2.first << std::endl;
}
// The data function is used to access the data stored in a node.
m_modules.insert(v.second.data());
}
}
BOOST_FOREACH(pt::ptree::value_type &v, tree.get_child("model"))
{
subtree = v.second;
BOOST_FOREACH(pt::ptree::value_type &v2, subtree)
{
std::cout << v2.first << std::endl;
std::cout << v2.second.get<std::string>(v2.first) << std::endl;
}
// The data function is used to access the data stored in a node.
}
si v2.first c'est le nom de la balise , v2.second devrait etre ce qu'elle contient non ? Quel est le type de v2.second ?
De ce que je comprend tu a fait un "get(id)" .. si tu as access a des fonctions comme des getters , verify si ton v2.second n'a pas une fonction du genre "innerText" ou "value" ..
Pour info, tu as un parseur xml presque complet et surtout header only, il parse et bien sûr, il permet de construire un xml. Son nom, rapidxml, parce qu'en plus d'être header only, côté performance, il envoie sévère... Le seul hic, c'est la prise en main, au début on galère un peu pour construire un arbre, c'est très bas niveau, c'est toujours délicat le bas niveau. Pour seconde info, il est utilisé dans boost::property_set, justement pour le stockage en fichier xml. Perso je l'ai un peu torturé, le bestiau me gère des xml de 50 Mo les doigts dans le nez ;p
Au boulot, on utilise souvent TinyXml en embarqué, c'est super facile à prendre en main, et on a jamais de gros volumes à traiter, donc ça le fait bien (en plus on a une totale maîtrise du format, tout est chiffré. Rapidxml, c'est plus chaud à gérer mais les perfs sont pas les mêmes...
@FVirtman tu devrais regarder lre code source de rapidxml, c'est assez chaud, mais très instructif
Désolé de ma réponse tardive , j'ai résolu mon problème, le soucis venait du format xml.
give to get :)
Parser xml en c++
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html