C++ 读取XML文件 Markup.cpp的 CMarkup 读取XML

添加Markup.cpp和.h,使用时添加引用

bool LoadModelCfg(char* FileName)
{
	CMarkup xml;
	if (!xml.Load(FileName))
	{
		return false;
	}

	xml.ResetPos();
	if (xml.FindElem())//第一个根节点
	{
		xml.IntoElem();//进入根目录
		while(xml.FindElem())//循环查找所有二级节点
		{
			if (strcmp(xml.GetTagName(),"Map")==0)//字符串比较
			{
				string mapName = xml.GetAttrib("name");
				printf("Map:%s\n",mapName.c_str());
				xml.IntoElem();
				while (xml.FindElem())
				{
					if (strcmp(xml.GetTagName(),"Field")==0)
					{
						string fieldname = xml.GetAttrib("name");
						string variable = xml.GetAttrib("variable");
						printf("参数:%s;%s\n",fieldname.c_str(),variable.c_str());
					}
					//xml.OutOfElem();
				}
				xml.OutOfElem();
			}
			
		}
	}
}

XML文件:


读取两个简单参数的结果:



注意:

1、xml.OutOfElem();的用法,返回上一节点在什么时候调用。

2、strcmp:字符串比较函数的返回值,两字符串相同时返回 0!!!

                    字符串1=字符串2,返回值=0;
                       字符串2>字符串2,返回值>0;
                       字符串1<字符串2,返回值<0。

猜你喜欢

转载自blog.csdn.net/glmushroom/article/details/80537580