<?xml version="1.0" encoding="utf-8"?>
<Config>
<Item name="IP测试报告2017-10-24 09-54-31">
<ChildItem name="Date" desc="" datatype ="string">2017-10-24 09-54-31</ChildItem>
<ChildItem name="FailureCount" desc="" datatype ="int">1</ChildItem>
<ChildItem name="IPAddressCount" desc="" datatype ="int">4</ChildItem>
<ChildItem name="SuccessCount" desc="" datatype ="int">3</ChildItem>
</Item>
</Config>

如何生成以上xml

  for (map<wstring, map<wstring, HistoryData>>::iterator it = vect_str.begin(); it != vect_str.end(); it++)
{ //迭代vector
for (map<wstring, HistoryData>::iterator it1 = it->second.begin(); it1 != it->second.end(); it1++)
{
m_pt3.add(L"<xmlattr>.name", it1->second.name);
m_pt3.add(L"<xmlattr>.desc", it1->second.desc);
m_pt3.add(L"<xmlattr>.datatype ", it1->second.datatype);
m_pt3.put_value(it1->second.value);
m_pt2.add_child(L"ChildItem", m_pt3);
m_pt3.clear();
} m_pt1.add_child(L"Item", m_pt2);
m_pt1.add(L"Item.<xmlattr>.name", it->first);
m_pt2.clear();
}
m_pt.add_child(L"Config", m_pt1);
    auto settings = boost::property_tree::xml_writer_make_settings<std::wstring>(L'\t', 1);
    write_xml(fileName, m_pt, utf8Locale, settings);

如何在现有的xml里插入新的Item如下

<?xml version="1.0" encoding="utf-8"?>
<Config>
<Item name="IP测试报告2017-10-24 09-54-31">
<ChildItem name="Date" desc="" datatype="string">2017-10-24 09-54-31</ChildItem>
<ChildItem name="FailureCount" desc="" datatype="int">1</ChildItem>
<ChildItem name="IPAddressCount" desc="" datatype="int">4</ChildItem>
<ChildItem name="SuccessCount" desc="" datatype="int">3</ChildItem>
</Item>
<Item name="IP测试报告2017-10-24 09-54-32">
<ChildItem name="Date" desc="" datatype ="string">2017-10-24 09-54-32</ChildItem>
<ChildItem name="FailureCount" desc="" datatype ="int">1</ChildItem>
<ChildItem name="IPAddressCount" desc="" datatype ="int">4</ChildItem>
<ChildItem name="SuccessCount" desc="" datatype ="int">3</ChildItem>
</Item>
</Config>

代码

 if (auto firstChild = m_pt.get_child_optional(L"Config"))
{
m_pt4 = m_pt.get_child(L"Config");
m_pt.clear();
for (map<wstring, map<wstring, HistoryData>>::iterator it = vect_str.begin(); it != vect_str.end(); it++)
{ //迭代vector
for (map<wstring, HistoryData>::iterator it1 = it->second.begin(); it1 != it->second.end(); it1++)
{
m_pt3.add(L"<xmlattr>.name", it1->second.name);
m_pt3.add(L"<xmlattr>.desc", it1->second.desc);
m_pt3.add(L"<xmlattr>.datatype ", it1->second.datatype);
m_pt3.put_value(it1->second.value);
m_pt2.add_child(L"ChildItem", m_pt3);
m_pt3.clear();
}
m_pt2.add(L"<xmlattr>.name", it->first);
m_pt4.add_child(L"Item", m_pt2);
m_pt2.clear();
}
m_pt.add_child(L"Config", m_pt4);
}
else
{
for (map<wstring, map<wstring, HistoryData>>::iterator it = vect_str.begin(); it != vect_str.end(); it++)
{ //迭代vector
for (map<wstring, HistoryData>::iterator it1 = it->second.begin(); it1 != it->second.end(); it1++)
{
m_pt3.add(L"<xmlattr>.name", it1->second.name);
m_pt3.add(L"<xmlattr>.desc", it1->second.desc);
m_pt3.add(L"<xmlattr>.datatype ", it1->second.datatype);
m_pt3.put_value(it1->second.value);
m_pt2.add_child(L"ChildItem", m_pt3);
m_pt3.clear();
}
m_pt1.add_child(L"Item", m_pt2);
m_pt1.add(L"Item.<xmlattr>.name", it->first);
m_pt2.clear();
}
m_pt.add_child(L"Config", m_pt1);
}
auto settings = boost::property_tree::xml_writer_make_settings<std::wstring>(L'\t', );
write_xml(fileName, m_pt, utf8Locale, settings);

Boost解析xml——xml写入的更多相关文章

  1. BOOST 解析,修改,生成xml样例

    解析XML 解析iworld XML,拿到entity和VisibleVolume的数据 int ParseiWorlds::readXML(const bpath &dir) { ptree ...

  2. android XMl 解析神奇xstream 五: 把复杂对象转换成 xml ,并写入SD卡中的xml文件

    前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xs ...

  3. 使用boost/property_tree进行XML操作

    之前一直用tinyxml来进行XML文件操作,刚刚接触的一个测试项目是使用boost操作的,虽然不清楚这两者的差异,但boost使用起来还挺方便的,所以简单整理一些关于boost解析和创建XML文件的 ...

  4. python3.4.3 调用http接口 解析response xml后插入数据库

    工作中需要调用一个http的接口,等不及java组开发,就试着用python去调用.Python版本3.4.3 完整的流程包括:从sqlServer取待调用的合同列表 -> 循环调用http接口 ...

  5. JSON解析和XML解析对比

    JSON解析和XML解析是较为普遍的两种解析方式,其中JSON解析的市场分额更大.本文系统的分析两种解析方式的区别,为更好地处理数据作准备.由于目前阶段主要是做移动开发,所以本文所描述的JSON解析和 ...

  6. 数据解析(XML和JSON数据结构)

    一   解析 二 XML数据结构 三 JSON 数据结构     一 解析 1  定义: 从事先规定好的格式中提取数据     解析的前提:提前约定好格式,数据提供方按照格式提供数据.数据获取方则按照 ...

  7. HL7 2.6解析转XML(C#版)

    HL7 2.6解析转XML(C#版) 项目中需要解析HL7,所以在网上找到解析代码,但错误很多,所以我修改了一下,测试好用. using System; using System.Collection ...

  8. Java解析Soap XML

    package com.jstrd.tipstock.webservice.jt.base; import java.io.ByteArrayInputStream; import java.util ...

  9. Android Animation学习(三) ApiDemos解析:XML动画文件的使用

    Android Animation学习(三) ApiDemos解析:XML动画文件的使用 可以用XML文件来定义Animation. 文件必须有一个唯一的根节点: <set>, <o ...

  10. JSON解析和XML解析

    一. XML:用到一个开源解析类,GDataXMLNode(将其加入项目中),添加libxml2.dylib框架 经常用到的方法: 1.- (id)initWithXMLString:(NSStrin ...

随机推荐

  1. Consolas 字体

    Consolas是一套等宽字体的字型,属无衬线字体,由Lucas de Groot设计. 概述 这套字型使用了微软的ClearType 字型平滑技术,并随同Windows Vista.Office 2 ...

  2. 关于自适应的矩形css布局

    在面试中遇到的问题,做一个自适应的宽高2:1的矩形,这个问题考察了padding的细节,padding-bottom的百分比值,相对的是该盒模型的height,设置矩形之后,里面的内容如果太多会溢出, ...

  3. 洛谷P2633 Count on a tree

    题目描述 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权.其中lastans是上一个询问的答案,初始为0,即第一个 ...

  4. input file HTML控件控制

    网页上添加一个input file HTML控件: 1 <input id="File1" type="file" /> 默认是这样的,所有文件类型 ...

  5. RedHat Linux 下安装、测试摄像头

    RedHat Linux 下安装.测试摄像头(全文见附件)     随着视频电话的迅速发展我相信大家一定有过在Windows 下安装摄像头的经历,然而大多数 都不支持Linux .我现以罗技摄像头为例 ...

  6. NGINX 代理以及 HTTPS (一)

    一. Nginx 安装 和基础代理配置 假如 启动nginx 出现这个错误,可能是 iis服务被打开了,80端口被占用了. 需要如下操作: 用Nginx 配置一个test.com 的代理名称.配置ho ...

  7. 学习《人人都是产品经理2.0:写给泛产品经理》高清中文PDF+苏杰(作者)

    <人人都是产品经理2.0--写给泛产品经理>将从人开始,以人结束,中间说事,以一个产品从无到有的过程为框架--想清楚.做出来.推出去,外加一章综合案例.其中,最重要的想清楚.做出来.推出去 ...

  8. 【J-meter】参数及相应数据中文显示乱码问题

    参考资料: http://www.51testing.com/html/00/130600-1360743.html http://www.cnblogs.com/fengpingfan/p/5851 ...

  9. python编程:从入门到实践--项目1-外星人入侵_学习笔记_源码

    这里有九个.py文件,在工作的间隙,和老板斗智斗勇,终于完成了,实现了游戏的功能,恰逢博客园开通,虽然是对着书上的代码敲了一遍,但是对pygam这个库的了解增加了一些,作为一个python初学者,也作 ...

  10. 【Henu ACM Round #12 E】Thief in a Shop

    [链接] 我是链接,点我呀:) [题意] n个物品,每个物品都有无限个. 第i个物品的价格是一样都,都是ai 让你从中选出恰好k个物品 问你选出的物品的总价值 有多少种不同的可能. [题解] 可以用f ...