pugixml使用笔记

https://pugixml.org/docs/manual.html#dom.tree pugixml官方使用手册

1.创建xml文件信息

例如:

    pugi::xml_document xmldoc;
    {
        pugi::xml_node decl = xmldoc.append_child(pugi::node_declaration);
        decl.append_attribute("version") = "1.0";
        decl.append_attribute("encoding") = "UTF-8";
    }

    {/*add ExperimentDesignScheme*/

        pugi::xml_node root_Node = xmldoc.append_child("Test");

        pugi::xml_node nodeInfo = root_Node.append_child("Tool");
        {
            pugi::xml_node Name = nodeInfo.append_child("Name");
           Name.text().set(“测试”);


            pugi::xml_node Time = nodeInfo.append_child("Time");
            QDateTime time = m_info.time;
            QString strBuffer = time.toString("yyyy-MM-dd hh:mm:ss");
            Time.text().set(strBuffer.toStdString().c_str());

            pugi::xml_node File = nodeInfo.append_child("File");
            File.text().set(m_info.file.toStdString().c_str());

            pugi::xml_node Purpose = nodeSchemeInfo.append_child("Purpose");
            Purpose.text().set(m_doeinfo.doepurpose.toStdString().c_str());
        }


    }

   xmldoc.save_file(savePath.toStdWString().c_str(), "\t", 1U, pugi::encoding_utf8);

 

2.读取文件信息

   //读取想定文件
   result = doc.load_file(m_info.filepath.toStdWString().c_str());
   if (!result)
       return -1;

   //使用节点名获取节点句柄
   pugi::xml_node  tools = doc.child("Test").child("Tool");

   for (pugi::xml_node tool = tools.first_child(); tool ; tool = tool .next_sibling())  //遍历节点下有几个子节点
   {
        QString Name= tool .attribute("Name").value(); //名字
        QString Time= tool .attribute("Time").value(); //时间
        QString File= tool .attribute("File").value(); //文件

   }

3.删除节点

      result = doc.load_file(m_info.filepath.toStdWString().c_str());

      pugi::xml_node root_Node = doc.child("Test").child("Tool");

        //删除之前的因子水平节点
        root_Node.remove_child("Name");
        root_Node.remove_child("Time");
4.保存文件

doc.save_file("文件路径+文件名", "\t", 1U, pugi::encoding_utf8);这里的doc是pugi::xml_document对象和读取文件时候的doc一样

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫毅忆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值