tinyxml 用法

场景说明:创建一个空的xml文件,要求格式如下:

<?xml version="1.0" encoding="UTF-8" ?>

<MyGUI type="Resource" version="1.1">

</MyGUI>

代码如下:

TiXmlElement *RootElement = NULL;    

TiXmlDocument *pDoc = NULL;   

pDoc = new TiXmlDocument();   

TiXmlDeclaration *pDeclaration = new TiXmlDeclaration(("1.0"),("UTF-8"),(""));   

pDoc->LinkEndChild(pDeclaration);    

RootElement = new TiXmlElement(("MyGUI"));   

RootElement->SetAttribute("type","Resource");   

RootElement->SetAttribute("version","1.1");   

pDoc->LinkEndChild(RootElement);    

pDoc->SaveFile("myfile.xml");

delete pDeclaration;

delete pDoc;

结果如下:

<?xml version="1.0" encoding="UTF-8" ?>

<MyGUI type="Resource" version="1.1" />

居然少了最后的一句!!!!


tinyxml是否存在内存泄露

代码如下:

        TiXmlDeclaration * xmlDec = new TiXmlDeclaration("1.0", "UTF-8", "yes");

        TiXmlDocument * xmlDocs = new TiXmlDocument();

        xmlDocs->LinkEndChild(xmlDec);

        TiXmlElement * element = new TiXmlElement("disk");

        xmlDocs->LinkEndChild(element);

        xmlDocs->SaveFile("myfile.xml");

        delete xmlDocs;

动态生成的xmlDec和elemnet没有释放,是否导致内存泄露???

但是释放内粗,导致运行时候程序出现段错误,看来需要查看源代码!!

        TiXmlDeclaration * xmlDec = new TiXmlDeclaration("1.0", "UTF-8", "yes");

        TiXmlDocument * xmlDocs = new TiXmlDocument();

        xmlDocs->LinkEndChild(xmlDec);

        TiXmlElement * element = new TiXmlElement("disk");

        xmlDocs->LinkEndChild(element);

        xmlDocs->SaveFile("myfile.xml");

        delete xmlDocs;

        delete xmlDec;

        delete element;


tinyxml:Could not load test file Error='Error reading Attributes.'. Exiting.

描述:

使用windows写字板编辑任何的xml文件,保存成为纯文本文件导致的问题,是下面

属性完全消失

Could not load test file 'test.xml'.Error='Error reading Attributes.'. Exiting.


     本文转自fengyuzaitu 51CTO博客,原文链接:http://blog.51cto.com/fengyuzaitu/1978730,如需转载请自行联系原作者



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值