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

这是我找的

posted @ 2021-10-05 20:06  好吗,好  阅读(1162)  评论(0)    收藏  举报