tinyxml是一个操作xml文件的库,它对于xml文件的操作基于节点名,层层迭代,想要使用tinyxml遍历一个xml文件就需要使用循环或者递归的方式,这里给出的是使用递归的方式进行遍历

void ShpProcess::GetEleValue(XMLElement * element)
{for (XMLElement* currentele = element->FirstChildElement(); currentele; currentele = currentele->NextSiblingElement()){XMLElement* tmpele = currentele;if (currentele->GetText() != NULL)cout << currentele->Name() << ":" << currentele->GetText() << endl;  if (!tmpele->NoChildren())GetEleValue(tmpele);}
}

简单解释下函数逻辑

for循环从传入的父节点element的第一个子节点开始循环,用currentele存储当前节点,节点存在则对节点内容进行判断,文本值不为空就输出节点内容(文本为空跳过)

继而判断是否具有子节点,有子节点则进行递归调用

没有子节点就继续进行for循环,此时的currentele指向下一个同级节点,以此循环,直到遍历完整个XML文件

tinyxml/tinyxml2遍历所有节点相关推荐

  1. tinyxml2遍历所有节点_Python实现二叉树的遍历

    Outline: 二叉树概念 二叉树遍历(前序.中序.后序.宽度优先遍历)的迭代实现和递归实现: 二叉树的深度,二叉树到leaf的所有路径. 树(Tree) 是一种抽象数据类型(ADT),是由n(n& ...

  2. 遍历同辈节电的方法_JQuery遍历DOM节点的方法

    本文实例讲述了JQuery遍历DOM节点的方法.分享给大家供大家参考.具体分析如下: 本节的核心是介绍JQuery的DOM操作,前面介绍了很多创建.删除.替换等等节点操作.这里介绍如何遍历节点,选中临 ...

  3. extjs tree 遍历树节点并设置选中

    function initTreeChecked(){//获取根节点     var rootnoe = Ext.getCmp("id").getRootNode();;     ...

  4. js遍历树节点下的所有子节点_「Javascript数据结构」× 二叉搜索树

    目录 树的相关术语 二叉树和二叉搜索树 二叉树的遍历 二叉搜索树的搜索 二叉搜索树的移除 「 树的相关术语 」 一个树结构包含一些列存在父子关系的节点.每个节点都有一个父节点(除了顶部的第一个节点)以 ...

  5. 5月25日-js操作DOM遍历子节点

    一.遍历节点遍历子节点children();//获取节点的所有直接子类 遍历同辈节点next();prev();siblings();//所有同辈元素*find();从后代元素中查找匹配的filter ...

  6. 二叉树前中后序遍历以及节点计算

    二叉树前中后序遍历以及节点计算 二叉树 分类 二叉链的数据结构 三叉链的数据结构 四种遍历方法 深度优先遍历:前中后序 广度优先遍历:层序遍历 计算 节点个数 叶子节点个数 树的高度 第k层的节点个数 ...

  7. 数据结构:二叉树的创建,打印前中后序遍历,节点个数,叶子节点数,销毁,第K层中节点的个数,查找值为x的节点

    二叉树遍历:按照某种特定的规则,依次对二叉树中的节点进行相应的操作,并且每个节点只操作一次.(采用递归思想) 先序遍历:先遍历根节点,再遍历根节点的左子树,最后遍历根节点的右子树. 中序遍历:先遍历左 ...

  8. c++ STL list 遍历删除节点

    文章目录 错误方法 正确方法 list遍历删除节点时,处理不好会出现崩溃的情况. 错误方法 下面这种用法会在for的地方崩溃,分析 第一次for循环的时候 it=0,当t.erase(it)执行完成之 ...

  9. 树莓派(五)Tinyxml Tinyxml2的使用

    TinyXML2是simple.small.efficient开源的C++ XML文件解析库 优点:(1)对大部分的C/C++项目具有普适性.(2)使用较少的内存,速度变得更快.(3)没有C++的ST ...

最新文章

  1. 数据库基础-数据库引擎
  2. hack 入侵 142 主机的过程
  3. 2016蓝桥杯省赛---java---B---3(凑算式)
  4. 有钱可以多任性?OpenAI提出人肉模型训练,文本摘要全面超越人类表现!
  5. 8.0强行转换后变成了7_如何在服务器上安装SSL证书,让你的网站变成https
  6. Linux系统常用命令备忘
  7. java apache commons_使用java apache commons下载文件?
  8. C++11 并发指南三(Lock 详解)(转载)
  9. java jetty的classpath_java代码启动jetty
  10. 前端a链接读取txt文件导出下载_HTML页面点击下载文件的两种实现方法
  11. sao java_Java开发中的几种对象的说明(PO,VO,DTO,BO,POJO,DAO,SAO等)
  12. 只需45秒,Python给故宫画一组手绘图!
  13. 5G关键技术之D2D通信技术
  14. Android系统ANR错误实战分析
  15. BZOJ 1406 AHOI2007 密码箱 数论
  16. java面向对象笔记
  17. 夜神模拟器apk安装方式
  18. Quartz简介及初始化
  19. WebSestalt,好用的富集分析工具,介绍及使用教程
  20. Editor.md安装使用(markdown)

热门文章

  1. matlab聚类轮廓系数,R数据挖掘 第三篇:聚类的评估(簇数确定和轮廓系数)和可视化...
  2. 【药材识别】基于matlab GUI SVM色差色温判断药材炮制程度系统【含Matlab源码 2241期】
  3. threeJS 物体贴花
  4. VM虚拟机里安装Linux系统教程详解
  5. 解决HTML中换行会出现间隙问题
  6. 教程向|如何更好还原褶皱,ZBrush雕刻褶皱的技巧!
  7. UI设计师这4步从低薪转高薪
  8. 牛逼呀,前端自动化测试框架cypress
  9. GitLab服务器出现502报错解决方案
  10. 使用深澜宽带认证客户端的问题及解决办法