bool CreateXmlFile(const char *szFileName)
{
//创建xml文件,szFileName为文件保存的路径,若创建成功返回true,否则false
try
{
//创建一个XML的文档对象
TiXmlDocument *myDocument=new TiXmlDocument();
//创建一个Person 元素并连接
TiXmlElement *RootElement=new TiXmlElement("Persons");
myDocument->LinkEndChild(RootElement);
//创建一个Person元素并连接
TiXmlElement *PersonElement=new TiXmlElement("Person");
RootElement->LinkEndChild(PersonElement);
//设置Person 元素的属性
PersonElement->SetAttribute("ID","1");
PersonElement->SetAttribute("Name","PersonName");
//创建name元素、age元素并连接
TiXmlElement *NameElement=new TiXmlElement("name");
TiXmlElement *AgeElement=new TiXmlElement("age");
PersonElement->LinkEndChild(NameElement);
PersonElement->LinkEndChild(AgeElement);
//设置name元素和age元素的内容并连接
TiXmlText *NameContent=new TiXmlText("琳");
TiXmlText *AgeContent=new TiXmlText("25");
NameElement->LinkEndChild(NameContent);
AgeElement->LinkEndChild(AgeContent);
//保存到文件
myDocument->SaveFile(szFileName);
}
catch( char* e)
{
return false;
}
return true;
}
bool ReadXmlFile(const char *szFileName) { //读取Xml文件,并遍历 try { //创建一个XML的文档对象 TiXmlDocument *myDocument=new TiXmlDocument(szFileName); myDocument->LoadFile(); //获得根元素,即Persons. TiXmlElement *RootElement=myDocument->RootElement(); //输出根元素名称,即输出Persons. //cout<<RootElement->Value()<<endl; //获得第一个Person节点。 TiXmlElement *FirstPerson=RootElement->FirstChildElement(); //获得第一个Person的name节点和age节点和ID属性。 TiXmlElement *NameElement=FirstPerson->FirstChildElement(); TiXmlElement *AgeElement=NameElement->NextSiblingElement(); TiXmlAttribute *IDAttribute=FirstPerson->FirstAttribute(); TiXmlAttribute *NameAttribute=IDAttribute->Next(); cout<<FirstPerson->Value(); //输出第一个Person的name,age,id cout<<":"<<NameElement->FirstChild()->Value()<<","; //cout<<NameElement->FirstChild()->Value()<<endl; cout<<AgeElement->FirstChild()->Value()<<endl; //cout<<IDAttribute->Value()<<endl; } catch(char * e) { return false; } return true; }
int _tmain(int argc, _TCHAR* argv[]) { const char *fileName="D:\\TextInfo.xml"; CreateXmlFile(fileName); ReadXmlFile(fileName); }