Tinyxml2 实现xml文件的增删改查

初识 tinyxml2 ,记录一下其常 用操作

参考网址:https://shilohjames.wordpress.com/2014/04/27/tinyxml2-tutorial/#XML-SaveXMLDocument

创建一xml文件 :

XMLDocument iXmlDoc;

iXmlDoc.SaveFile("test.xml");

XMLDocument类型的实体 类似于一个句柄,用它可以来生成,保存,读取xml文件。

xml的任何更改最后一定要保存才可能生效,这一点一定要切记切记!

打开已有的xml文件:

XMLDocument *piXmlDoc =new XMLDocument();

int nReturnCode=piXmlDoc->LoadFile(strFileName.c_str());

如果加载成功,返回的ReturnCode0

xml文件里插入一个Element,并增加属性

XMLElement * pRoot=iXmlDoc.NewElement("Ewaybot");

iXmlDoc.InsertFirstChild(pRoot);

XMLElement * pElement = iXmlDoc.NewElement("parameter");

pElement->SetAttribute("Name",“456”);

pRoot->InsertEndChild(pElement);

iXmlDoc.SaveFile("test.xml");

        先生成一个Element元素 pRoot, 调用InsertFirstChild方法完成插入根节点。

InsertEndChildpElement插入到根节点的最后,成为其最后一个元素。 pElement通过SetAttribute可以设定自己的属性。

最后还是要保存。

查找某个Element,及其中的属性:

XMLEleent* piXmlElemRoot=iXmlDoc .RootElement();

先找到xml文件的根元素,没有根元素就是返回的就是每一个元素。

XMLElement* piXmlElemParam=piXmlElemRoot->FirstChildElement("parameter");

查找根元素下名为: parameter的元素,如果有的话就返回指向第一个句为 parameter元素的指针; 可以用下面这个方式去遍历根元素下的所有Element

while(piXmlElemParam) { //do something... piXmlElemParam=piXmlElemParam->NextSiblingElement(); }

piXmlElemParam=piXmlElemParam→NextSiblingElement();的作用为返回与 piXmlElemParam同级
的下一个Element的指针;

const XMLAttribute*piXmlAttribute=piXmlElemParam->FirstAttribute();

    piXmlAttribute为Element中属性的类。用这种方式可以获得 piXmlElemParam的第一个属性。
这里的返回一定是const类型的,否则编译不过,这是tinyxml2和tinyxml的一处区别所在。
如果这里的属性指针是const类型的那说明,不能通过属性本身去修改属性的值,只能通过包含属性的元素去修改属性,
修改属性的方法下面会列出。

piXmlAttribute=piXmlAttribute→Next();

这个操作会获得 piXmlElemParam这个Element的下一上属性,这种方式跟之前Element之间的操作相似。

piXmlAttribute->Name() piXmlAttribute→Value()

这两种方法可以获得属性的名称和值。 删除某个Element

XMLElement* piXmlElemRoot=iXmlDoc.RootElement(); XMLElement* piXmlElemParam=piXmlElemRoot→FirstChildElement("parameter"); piXmlElemRoot->DeleteChild(piXmlElemParam);

DeleteChild为删除一个Element 修改Element的属性:

XMLElement* piXmlElemRoot=((XMLDocument*)piXmlDoc)->RootElement(); XMLElement* piXmlElemParam=piXmlElemRoot→FirstChildElement("parameter"); piXmlElemParam->SetAttribute(“Name”,“123”);

如果Element中有Name这条属性,上面的操作会将其值改成123!也就是说,SetAttribute,即可以增加新的属性,也可以
修改已有的属性!
关闭xml文件:

delete iXmlDoc;

操作完成后一定要释放资源,方式如上,即释放句柄。
参考网址:https://shilohjames.wordpress.com/2014/04/27/tinyxml2-tutorial/#XML-SaveXMLDocument
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值