Bibliothèque C ++ pour stocker les parameters en XML

Avant de commencer à écrire avec ma propre bibliothèque de parameters, je me suis dit que j’essaierais de trouver une bibliothèque existante. J’ai cherché sur Google et trouvé beaucoup pour C # ou MFC, mais rien qui utilise le langage C ++ / STL. Je voudrais quelque chose qui permet l’access via des clés telles que:

mySettings["Root"]["Subsection"]["Value"].Value 

Ou quelque chose du genre. Y a-t-il quelque chose qui puisse fournir ce type d’interface à un fichier XML ou est-ce que je vais devoir rouler le mien?

Merci j

Il y a TinyXML et pugixml

PugiXML prend en charge XPath

L’arbre de propriétés Boost est l’une de ces bibliothèques, mais vous devez vous demander si vous souhaitez utiliser boost uniquement à cette fin. Cela fonctionne bien pour les propriétés de configuration simples comme illustré dans l’exemple, même si je me souviens que faire quelque chose de plus complexe m’a pris un peu plus de temps pour bien comprendre:

Le code suivant est extrait de la documentation:

 // Create an empty property tree object using boost::property_tree::ptree; ptree pt; // Load the XML file into the property tree. If reading fails // (cannot open file, parse error), an exception is thrown. read_xml(filename, pt); // Get the filename and store it in the m_file variable. // Note that we construct the path to the value by separating // the individual keys with dots. If dots appear in the keys, // a path type with a different separator can be used. // If the debug.filename key is not found, an exception is thrown. m_file = pt.get("debug.filename"); 

Toutes les réponses intéressantes. Mais je dois souligner que, jusqu’à ce que C ++ fournisse sa propre API XML, utilisant un vrai fichier de configuration XML, l’implémentation de votre propre classe de configuration XML personnalisée est la meilleure solution. Aujourd’hui, je suis confronté à la même tâche et c’est la solution que je vais utiliser. Vous pouvez voir en noir et blanc les parameters de configuration, car vous gérez votre propre schéma XML. Ensuite, votre classe de configuration XML est personnalisée pour parsingr ce schéma sans surcharger votre solution de pléthore de fonctionnalités et de complexités superflues. Simple, concis et pratique / = bloatware.