资讯详情

TiXml 应用笔记

TiXml简单的应用,这里简单的记录用法。

加载文件:

bool loadXmlFile(const char* filename) {     TiXmlDocument tiXml;     if (!tiXml.LoadFile(filename))         return false;     return true; }

加载文件相对简单,直接调用LoadFile()函数。以下内容基于以下内容xml操作文件内容:

<hh_xml>  <filename>girls.jpg</filename>  <path>D:/11/girls.jpg</path>  <source>   <db>Unknown</db>  </source>  <size>   <width>120</width>   <height>88</height>  </size>  <object>   <name>item1</name>   <camer>Mi2</camer>   <color>red</color>   <area>    <xmin>12</xmin>    <ymin>53</ymin>    <xmax>34</xmax>    <ymax>74</ymax>   </area>   <hair>1</hair>   <layer>3</layer>  </object> </hh_xml>

各操作如下:

// 获取根项 TiXmlElement* rootEle = tiXml.RootElement(); if (rootEle == NULL)     return false;  // 根项下获取object项 TiXmlElement* bdEle = rootEle->FirstChildElement("object");  // 获取第二个object项,这里只是演示,实际使用时,一切都要判断是否为NULL dbEle = (TiXmlElement*)bdEle->NextSibling();  // 获取object下一个属性 TiXmlElement* prpEle = (TiXmlElement*)bdEle->FirstChild("path");  // 获取不存在的项目 prpEle = (TiXmlElement*)bdEle->FirstChild("howfar"); if (prpEle == NULL) {     // 不存在,添加一个新项目  prpEle = new TiXmlElement("howfar");  bdEle->LinkEndChild(prpEle);  TiXmlText* tiVal = new TiXmlText("800cm");  prpEle->LinkEndChild(tiVal); } else {     // 存在,修改它的值  TiXmlElement* valPtr = (TiXmlElement*)prpEle->FirstChild();  valPtr->SetValue("750cm"); }  // 保存到原始文件中 if (!tiXml.SaveFile())     return false;

以上演示了简单的操作。请注意,代码中没有判断是否成功。在实际使用中,必须进行判断。

第一次不存在howfar,xml结果如下:

...  <object>   <name>item1</name>   <camer>Mi2</camer>   <color>red</color>   <area>    <xmin>12</xmin>    <ymin>53</ymin>    <xmax>34</xmax>    <ymax>74</ymax>   </area>   <hair>1</hair>   <layer>3</layer>   <howfar>800cm</howfar>  </object> ...

第二次,howfar如果已经存在,它的值将被修改为750cm,如下所示:

...  <object>   <name>item1</name>   <camer>Mi2</camer>   <color>red</color>   <area>    <xmin>12</xmin>    <ymin>53</ymin>    <xmax>34</xmax>    <ymax>74</ymax>   </area>   <hair>1</hair>   <layer>3</layer>   <howfar>750cm</howfar>  </object> ...

演示中包含的功能包括:

加载文件、保存文件、获取根节点、获取子节点、获取第二个子节点、新加入一个项、修改一个项的值

标签: tival压力变送器tst

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台