读取--------------------------------------------------------------------------------------
bool readTinyXML()
{
bool ret = false;
try
{
char current_dir[MAXLENTH];
memset(current_dir, 0, MAXLENTH);
getcwd(current_dir, MAXLENTH);//getcwd获得当前应用程序路径
strcat(current_dir, "/abc.xml");
string xmlDir =current_dir;//注意路径传递的有效性
//d读
TiXmlDocument* readDoc = new TiXmlDocument();
if(readDoc == NULL)//容错处理
{
cout << "TiXmlDocument fail"<<endl;
return false;
}
bool loadOkay = readDoc->LoadFile(xmlDir.c_str());
if (!loadOkay) {
cout << "read fail:"<< readDoc->ErrorDesc() <<endl;
readDoc->Clear();
return false;
}
TiXmlElement* root = readDoc->RootElement();//获得根元素
if(root == NULL)
{
cout<< "root element find fail"<<endl;
readDoc->Clear();//清空内容
return false;
}
TiXmlElement *pEle = root->FirstChildElement("mqtt");
if(pEle == NULL)
{
readDoc->Clear();
return false;
}
int a,b;
a = pEle->Attribute("nodeName-a");//第一个参数为节点属性名称
pEle->QueryValueAttribute("nodeName-b", &b);
readDoc->Clear();
if(readDoc !=NULL)
{
delete readDoc;
readDoc = NULL;
}
return true;
}
catch(exception ex)//异常处理
{
ret = false;
cout << "exception"<<endl;
cout <<"exception:" <<ex.what()<<endl;
return ret;
}
return ret;
}
写入-------------------------------------------------------------------------------------
void writeTinyXML()
{
char current_dir[MAXLENTH];//要保存文件的路径名称
memset(current_dir, 0, MAXLENTH);
getcwd(current_dir, MAXLENTH);
strcat(current_dir, "/abc.xml");
TiXmlDocument *pDoc = new TiXmlDocumen();
if (NULL == pDoc)
{
return false;
}
TiXmlDeclaration *pDeclaration = new TiXmlDeclaration("1.0", "UTF-8", "");//声明头
if (NULL == pDeclaration)
{
return false;
}
TiXmlElement *pRootEle = new TiXmlElement("root");//根元素
if (NULL == pRootEle)
{
return false;
}
pDoc->LinkEndChild(pRootEle);
TiXmlElement *pMqttEle = new TiXmlElement("First");//元素
if (NULL == pMqttEle)
{
return false;
}
pMqttEle->SetAttribute("id", "1111");
pRootEle->LinkEndChild(pMqttEle);
pDoc->SaveFile(xmlDir);
delete pDoc;
}