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);
}
posted @ 2012-06-19 19:32  Kingdom_0  阅读(968)  评论(0编辑  收藏  举报