//made by davidsu33
//boost.property_tree是一个保存了多个属性值的树形数据结构
//boost.property_tree可以解析xml ini json和info四种格式的文本
#include
#include
#include
#include
#include
#include
using namespace std; void putline(const char * str) { cout<
("conf.theme"); int guiID = pt.get
("conf.gui"); //int id = pt.get_value
(); assert(guiID == 1); //不存在属性返回默认值 int def = pt.get
("conf.no", 100000); assert(def = 100000); BOOST_AUTO(childs2, pt.get_child("conf.urls")); PTree childs = pt.get_child("conf.urls"); //??? //int count = pt.count("urls"); //assert(count == 3); //读取多子节点的数据 BOOST_AUTO(it, childs.begin()); BOOST_AUTO(iend, childs.end()); for (; it != iend; ++it) { //迭代器指向ptree的value_type, //它的second成员是子节点自身 //cout<
second.get_value
()<
second.data()<
(""); //读取XML声明 BOOST_ASSERT(pt.get
("conf.gui.
.lib") == "QT"); BOOST_ASSERT(pt.get
("conf.theme.
.id") == 1002); BOOST_ASSERT(pt.get
("conf.
") == "this is conf comment"); //貌似不支持CDATA,测试未通过 //std::string xmltext = pt.get
("conf.
"); //BOOST_ASSERT(pt.get
("conf.
") == "字符数据-character data"); } int _tmain(int argc, _TCHAR* argv[]) { parse_xml(); getchar(); return 0; }