1. 程式人生 > >C++ 讀取XML檔案 Markup.cpp的 CMarkup 讀取XML

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。