• tinyxml开源库的基本用法


    最近项目中的某个功能需要写xml,由于项目中已经引入了tinyxml,所以不再寻找其他开源库。

    前提:你得有个xml对象,声明tinyxml的对象:基于tinyxml的内存管理,TiXmlDocument  xmlDoc这样定义更简单;

    读:

    (1)载入xml:

      xmlDoc.LoadFile(filename, TIXML_ENCODING_UTF8);

     (2)读根节点:

      TiXmlElement* pRootEle = xmlDoc.RootElement();

     (3)获取节点:

      TiXmlElement* pCommEle = pRootEle->FirstChildElement(“test”);

     (4)获取节点的属性:

      pCommEle->Attribute(“mode”, &imode);

     (5)获取节点的值:

      pCommEle->FirstChild()->Value();

     

    写: 

    要写入xml,首先要弄清楚xml的各个元素在tinyxml的定义。

    TiXmlNode:节点;
    
    TiXmlComment:注释;
    
    TiXmlDeclaration:声明;
    
    TiXmlElement:元素;
    
    TiXmlText:文字 

    弄清楚概念后写入就简单了

    (1)首先写入声明:

    TiXmlDeclaration* pdecl = new TiXmlDeclaration("1.0", "utf-8", "");
    xmlDoc.LinkEndChild(pdecl);

    (2)写入节点:

    TiXmlElement* pESTimeEle = new TiXmlElement(“test”);
    pRootEle->LinkEndChild(pESTimeEle);

    这里需要说明下:如果写入的是根节点,写入后显示:<test></test>

    如果写入的是其他节点,写入后显示:<test />

    如果要写入后显示<test></test>,则需要写入空的节点文本,具体操作见(5)

    (3)写入注释:

    TiXmlComment* pModeComm = new TiXmlComment(“中文”);
    pRootEle->LinkEndChild(pModeComm);

    这里需要说明的是:如果要写入非英文字符,需要注意字符编码,因为声明中使用utf-8的编码,必须保持一致性。

    (4)写入节点文本:

    TiXmlText *pIpContent = new TiXmlText(“00”);
    pESTimeEle->LinkEndChild(pIpContent);

    (5)写入节点属性:

    pESTimeEle->SetAttribute(“mode”, 12);

    (6)写完后保存:

    xmlDoc.SaveFile(“test.xml”)

     PS: TiXmlDocument对象建议在栈上申请,其他对象在堆上申请,且不用手工释放,最后析构TiXmlDocument对象时会自动释放。

    其他的暂未使用,就不写出来误人子弟了。

    欢迎看官们拍砖,已备好头盔。

    尊重自己的内心,尊重别人的选择。
  • 相关阅读:
    剑指OFFER----面试题54. 二叉搜索树的第k大节点
    剑指OFFER----面试题53
    剑指OFFER----面试题53
    DevExpress ASP.NET Core v19.1版本亮点:Visual Studio集成
    Kendo UI for jQuery使用教程:初始化jQuery插件
    代码自动补全插件CodeMix全新发布CI 2019.7.15|改进CSS颜色辅助
    MyEclipse使用教程:使用工作集组织工作区
    DevExpress ASP.NET Core v19.1版本亮点:Pivot Grid控件等
    Kendo UI for jQuery使用教程:小部件DOM元素结构
    MyEclipse使用教程——使用DevStyle Icon Designer(二)
  • 原文地址:https://www.cnblogs.com/superbi/p/4972048.html
Copyright © 2020-2023  润新知