boost xml 整理

论坛 期权论坛 脚本     
匿名技术用户   2021-1-4 12:38   62   0

除非没有其它更好的选择,不建议使用boost xml功能,它还不完善

1、关于xml_writer_settings编译出错的问题:

使用这条语句代替:

auto settings = boost::property_tree::xml_writer_make_settings<std::string>('\t',1);

基于C++14,boost1.70没有问题

2. 关于节点

如果使用

rootdata.add("annuniator.Model", "ShanDongShuangBai");

创建了一个节点Model,但是annuniator实际是不存在的,当写入xml文件时,annuniator节点自动创建

3. 关于find,这个函数似乎有bug,按照它的注释的说法,如果查询不到,它返回的应该是not_found,但实际这个判断条件并没有什么效果,在查找到所有的有效数据之后,find会把所有无效的数据也返回一遍;我不知道这个问题是不是与我数据格式相关的,可以确认的是not_found函数返回的数据是符合说明的,find函数返回的数据在查找完有效数据后的返回不符合说明。

---对此,要有效返回所有有效的检索,应该使用count函数,count可以返回所有要查询的数据的个数(假设为n),然后使用find函数查询n次即可。

4. node改名

ptree &child = pt0.get_child("a.b");
ptree::iterator it = child.to_iterator(child.find("c2"));
child.insert(it, make_pair("c3", it->second));
child.erase(it);

5. boost xml缺点

5.1 对于同名子节点定位过于繁琐,不能根据节点属性自动定位,要避免在同名节点中使用属性,查询和修改都很繁琐

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP