int read_config()
{
char config_xml_path[256] = {0};
getcwd(config_xml_path, 200);
strcat(config_xml_path,"/down1.xml");
TiXmlDocument docConfigFile(config_xml_path);
if (!docConfigFile.LoadFile())
{
cout<<"docConfigFile.LoadFile error:"<<"down1.xml"<<endl;
return -1;
}
TiXmlHandle docHandle(&docConfigFile);
TiXmlElement *pItemElement = NULL;
pItemElement = docHandle.FirstChild("CONFIG").FirstChild("OSDATEBASE").Element();
if (NULL != pItemElement)
{
if(NULL != pItemElement->Attribute("host"))
{
sprintf(db_host, pItemElement->Attribute("host")) ;
}
if(NULL != pItemElement->Attribute("user"))
{
sprintf(db_user,pItemElement->Attribute("user")) ;
}
if(NULL != pItemElement->Attribute("pass"))
{
sprintf(db_pass,pItemElement->Attribute("pass")) ;
}
if(NULL != pItemElement->Attribute("db"))
{
sprintf(db_name,pItemElement->Attribute("db")) ;
}
}
pItemElement = docHandle.FirstChild("CONFIG").FirstChild("IP").Element();
if (NULL != pItemElement)
{
for(int i=0;pItemElement != NULL; pItemElement = pItemElement->NextSiblingElement("IP"),i++)
{
if(NULL != pItemElement->Attribute("ppcip"))
{
sprintf(g_ppc_pt[i].ppcip_stu, pItemElement->Attribute("ppcip")) ;
}
if(NULL != pItemElement->Attribute("port"))
{
g_ppc_pt[i].port_stu = atoi( pItemElement->Attribute("port")) ;
}
g_ppc_pt[i].task_cnt_stu = 0;
}
}
return 0;
{
char config_xml_path[256] = {0};
getcwd(config_xml_path, 200);
strcat(config_xml_path,"/down1.xml");
TiXmlDocument docConfigFile(config_xml_path);
if (!docConfigFile.LoadFile())
{
cout<<"docConfigFile.LoadFile error:"<<"down1.xml"<<endl;
return -1;
}
TiXmlHandle docHandle(&docConfigFile);
TiXmlElement *pItemElement = NULL;
pItemElement = docHandle.FirstChild("CONFIG").FirstChild("OSDATEBASE").Element();
if (NULL != pItemElement)
{
if(NULL != pItemElement->Attribute("host"))
{
sprintf(db_host, pItemElement->Attribute("host")) ;
}
if(NULL != pItemElement->Attribute("user"))
{
sprintf(db_user,pItemElement->Attribute("user")) ;
}
if(NULL != pItemElement->Attribute("pass"))
{
sprintf(db_pass,pItemElement->Attribute("pass")) ;
}
if(NULL != pItemElement->Attribute("db"))
{
sprintf(db_name,pItemElement->Attribute("db")) ;
}
}
pItemElement = docHandle.FirstChild("CONFIG").FirstChild("IP").Element();
if (NULL != pItemElement)
{
for(int i=0;pItemElement != NULL; pItemElement = pItemElement->NextSiblingElement("IP"),i++)
{
if(NULL != pItemElement->Attribute("ppcip"))
{
sprintf(g_ppc_pt[i].ppcip_stu, pItemElement->Attribute("ppcip")) ;
}
if(NULL != pItemElement->Attribute("port"))
{
g_ppc_pt[i].port_stu = atoi( pItemElement->Attribute("port")) ;
}
g_ppc_pt[i].task_cnt_stu = 0;
}
}
return 0;
}
XML文件
<CONFIG>
<OSDATEBASE host="10.0.2.246" user="root" pass="" db="mcache" />
<DOWNLOAD_DIR dir ="/home/xulei/big_httpdown/down1_downdir"/>
<DOWN_DEL_ENABLE enable = "0"/>
<DOWN_SRC_ENABLE enable = "1"/>
<UPDATE time ="60"/>
<PPC count ="1"/>
<IP ppcip="10.0.2.47" port="80" />
</CONFIG>
用到的类库cpp见我的资源:http://download.csdn.net/detail/u010857292/8958911
xml详细介绍(wangyin 师兄)
http://blog.csdn.net/wangyin159/article/details/47110839