在我开始使用自己的设置库编写之前,我会尝试找到现有的设置库。我用Google搜索并找到了很多C#或MFC,但没有使用普通的C ++ / STL。我想要一些允许通过键访问的内容,例如:
mySettings["Root"]["Subsection"]["Value"].Value
或者那些东西。是否有任何东西可以提供XML文件的那种接口,或者我将不得不自己滚动?
谢谢, Ĵ
答案 0 :(得分:7)
有TinyXML和pugixml
PugiXML确实有XPath支持
答案 1 :(得分:5)
Boost property tree是一个这样的库,但你必须考虑是否要为此目的引入提升。它适用于简单的配置属性,如示例中所示,但我记得做一些更复杂的事情花了我一点时间才能做到正确:
以下代码取自文档:
// 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<std::string>("debug.filename");
答案 2 :(得分:0)
所有有趣的答案。但我必须强调,在C ++提供自己的XML API之前,使用真正的XML配置文件,并实现自己的自定义XML配置类是最好的方法。今天我面临同样的任务,这是我将要使用的解决方案。您可以在黑白中看到配置设置,因为您正在维护自己的XML架构。然后,您的XML Configuration类被自定义以解析该架构,而不会因为过多的多余功能和复杂性而使您的解决方案过载。简单,简洁,实用/ =英国媒体报道。