今天使用c++写设计模式的作业,便要使用到xml文件。
作为一个数据传输文件,获取其内容十分重要,于是便搜索了如何在c++环境下解析xml文件。
我用的工具是VS2009,因为占用内存较少,而且足够我使用。
解析xml文件有很多第三方库,但大多使用的都是tiny2XML来解析,于是我也使用这个第三方库。
遇到了很多问题,记住VS中的文件是要引入的,而非复制粘贴的,否则找不到。
首先头部这样写就行
其次文件这样引入
我想都会吧
但是头文件这里出现了问题,找不到tinyxml2.h
后来百度搜索发现右击项目名称,点击最下方的属性,找到C/C++常规加上.h文件所在路径就解决了,只是这个项目
随后写代码解析xml文件
int main(){ NvWa nw; XMLDocument xml; xml.LoadFile("config.xml"); XMLElement *category = xml.RootElement(); XMLElement *con = category->FirstChildElement("Name"); const char* name = con->GetText(); cout << name << endl; Person *p = nw.makePerson(name); p->show(); }
1. 首先定义一个xml的文件对象: TiXmlDocument doc;
2. 然后开始加载文件: doc.LoadFile("test.xml")
3. 获得根节点, TiXmlElement* root = doc.FirstChildElement();
4. 获得根节点级别下的第一个节点(因为平时的跟节点通常是这么设计的, 用来说明这个文档所描述的对象)
在例子里就是number: TiXmlElement* elem = root->FirstChildElement();
5. 如果要访问grade节点,也就是说访问number的兄弟节点,那么就是 TiXmlElement elem2 = elem->NextSiblingElement();
非常简单直白
6. 如果要访问其中的属性呢,比如说number里的属性in_use的值, 那么就是elem->Attribute("in_use");
7. 如果想获得“233”这个值,就用elem->GetText();
————————————————
版权声明:本文为CSDN博主「ShiningStarPxx」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ShiningStarPxx/article/details/8867364
这是我找的
原文链接: https://www.cnblogs.com/zhanghua-lijie/p/15369404.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/214149
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!