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

转载于:https://www.cnblogs.com/kingdom_0/articles/2555274.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值