C++TinyXml读取解析xml文件

1. 背景

一个小工程需要在程序启动的时候,读取xml配置文件信息并进行初始化。
TinyXml是一个精简的比较流行的C++第三方库,所以工程里用它进行读取xml文件。
下载地址: http://sourceforge.net/projects/tinyxml/

2. 源码及解读

解析函数如下:
其中这里只需要读取两个属性值。
具体的库里的函数可以参考文档,比较简单。
bool CTestDlg::InitConfig(void)		//读取配置文件
{
	const char *fileXml = "TicWebsocketServer.exe.config";
	TiXmlDocument doc;
	if (!doc.LoadFile(fileXml))
	{
		AfxMessageBox("哎呀,加载配置文件失败了-_-");
		return false;
	}

	TiXmlElement *rootElement = doc.RootElement();//configuration元素
	TiXmlElement *settingElement = rootElement->FirstChildElement("appSettings");//appsettings元素
	TiXmlElement *addElement = settingElement->FirstChildElement();//add元素
	bool flag = false;

	for (; addElement != NULL; addElement = addElement->NextSiblingElement())//遍历add元素的属性
	{
		TiXmlAttribute *attributeAdd = addElement->FirstAttribute();//第一个属性
		if (strcmp(attributeAdd->Value(), "SMS_Enable") == 0)
		{
			attributeAdd = attributeAdd->Next();//第二个属性
			if (strcmp(attributeAdd->Value(), "true") == 0)
			{
				flag = true;
			}
			else
				flag = false;
		}
		else if (strcmp(attributeAdd->Value(), "SMS_SerialNumber") == 0)
		{
			attributeAdd = attributeAdd->Next();
			GetDlgItem(IDC_Port)->SetWindowText(attributeAdd->Value());
		}
	}

	return flag;
}



配置文件如下:


  
    
  
  
    
  
  
    
    
    
    
    
    
    
    
    
    
    
    
  
  
    
      
        
        
      
      
        
        
      
    
  
  
    
      
        
      
    
    
      
        
      
    
  



你可能感兴趣的:(C++_MFC)