Tinyxml2 实现xml文件的增删改查
来源:互联网 发布:数据库原理经典书籍 编辑:程序博客网 时间:2024/06/06 07:25
参考网址: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());
如果加载成功,返回的ReturnCode为0;
向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方法完成插入根节点。
InsertEndChild把pElement插入到根节点的最后,成为其最后一个元素。pElement通过SetAttribute可以设定自己的属性。
最后还是要保存。
查找某个Element,及其中的属性:
先找到xml文件的根元素,没有根元素就是返回的就是每一个元素。XMLEleent* piXmlElemRoot=iXmlDoc .RootElement();
查找根元素下名为: parameter的元素,如果有的话就返回指向第一个句为 parameter元素的指针;可以用下面这个方式去遍历根元素下的所有ElementXMLElement* piXmlElemParam=piXmlElemRoot->FirstChildElement("parameter");
piXmlElemParam=piXmlElemParam→NextSiblingElement();的作用为返回与 piXmlElemParam同级while(piXmlElemParam){ //do something... piXmlElemParam=piXmlElemParam->NextSiblingElement();}
的下一个Element的指针;
const XMLAttribute*piXmlAttribute=piXmlElemParam->FirstAttribute();
piXmlAttribute为Element中属性的类。用这种方式可以获得 piXmlElemParam的第一个属性。这里的返回一定是const类型的,否则编译不过,这是tinyxml2和tinyxml的一处区别所在。如果这里的属性指针是const类型的那说明,不能通过属性本身去修改属性的值,只能通过包含属性的元素去修改属性,修改属性的方法下面会列出。
这个操作会获得 piXmlElemParam这个Element的下一上属性,这种方式跟之前Element之间的操作相似。piXmlAttribute=piXmlAttribute→Next();
这两种方法可以获得属性的名称和值。删除某个Element:piXmlAttribute->Name();piXmlAttribute→Value();
DeleteChild为删除一个Element。修改Element的属性:XMLElement* piXmlElemRoot=iXmlDoc.RootElement();XMLElement* piXmlElemParam=piXmlElemRoot→FirstChildElement("parameter");piXmlElemRoot->DeleteChild(piXmlElemParam);
如果Element中有Name这条属性,上面的操作会将其值改成123!也就是说,SetAttribute,即可以增加新的属性,也可以XMLElement* piXmlElemRoot=((XMLDocument*)piXmlDoc)->RootElement();XMLElement* piXmlElemParam=piXmlElemRoot→FirstChildElement("parameter");piXmlElemParam->SetAttribute(“Name”,“123”);
修改已有的属性!关闭xml文件:操作完成后一定要释放资源,方式如上,即释放句柄。delete iXmlDoc;
参考网址:https://shilohjames.wordpress.com/2014/04/27/tinyxml2-tutorial/#XML-SaveXMLDocument
- Tinyxml2 实现xml文件的增删改查
- java实现xml文件增删改查
- XML文件的增删改查12.1
- xml实现增删查改
- XML的增删改查
- xml的增删改查
- XML的增删改查
- XML的增删改查
- XML的增删改查
- Xml的增删改查
- LINQ to XML实现XML文档的增删改查
- 使用dom4j工具包实现对xml文件的增删改查和乱码问题的处理
- Linq对XML文件的增删改查
- Java对XML文件的增删改查
- C# XML文件的一些操作,增删改查
- Mybatis用xml文件映射的增删查改
- Mybatis用xml文件映射的增删查改
- XML学习之文件的增删改查
- python 字典中取值的两种方法
- C++中含参构造函数的类对象做成员变量的方法
- 机器人软件平台ROS
- 最近关于调试一些心得,和离奇的案例
- C++ 中引用参数类型不匹配造成的编译问题
- Tinyxml2 实现xml文件的增删改查
- 关于SearchView的一些小细节
- Ubuntu 创建下自启动脚本
- oracle唯一索引
- Ubuntu 下快速解决:E: Could not open lock file /var/lib/dpkg/lock
- ROS中找并编译已存在的Package
- RSA加密与解密
- C++ 中宏(macro)#,##,和...(可变参数宏variadic macros)
- Ubuntu 下关闭/启用触摸板