c++解析xml文件


今天使用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

这是我找的


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM