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);
}