C++基础--TinyXml 读写XML文档
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); }