深度优先遍历文挡树(递归方法):

 1/** <summary>
 2  /// 深度优先遍历文挡树(递归方法)
 3  /// </summary>
 4  /// <param name="currentNode">当前节点</param>
 5  public void DOMDepthFirst(XmlNode currentNode)
 6  {
 7   XmlNode node = currentNode.FirstChild ;
 8   while ( node != null )
 9   {
10    DOMDepthFirst( node ) ;
11    node = node.NextSibling ;
12   }
13
14   //do something else with currentNode herer
15  }

广度优先遍历文挡树(非递归)

1  /** <summary>
 2  /// 广度优先遍历文挡树(非递归)
 3  /// </summary>
 4  /// <param name="root">遍历的入口点,如果需要遍历整个文挡则是XmlDocument对象</param>
 5  public void DOMBreadthFirst(XmlNode root)
 6  {
 7   Queue queue = new Queue() ;
 8   queue.Enqueue(root) ;
 9   XmlNode currentNode = null ;
10   try
11   {
12    while (true)
13    {
14     //如果queue为空,则抛错,跳出try section,这里是while循环的退出条件
15     currentNode = (XmlNode)queue.Dequeue() ;
16
17     if (currentNode.HasChildNodes)
18     {
19      foreach (XmlNode child in currentNode.ChildNodes)
20      {
21       queue.Enqueue(child) ;
22      }
23     }
24    }
25   }
26   catch(System.InvalidOperationException ex)
27   {
28    //throw ex ;
29   }
30  }
31

使用方法:

XmlDocument doc = new XmlDocument() ;
   doc.Load("test.xml") ;
   DOMDepthFirst(doc) ;
   DOMBreadthFirst(doc) ;

转载于:https://www.cnblogs.com/humors/archive/2008/10/16/1312389.html

遍历XML文挡树的两种算法相关推荐

  1. 在.Net framework下遍历XML文挡树的两种算法

    在阅读ASP.NET_XML深入编程技术 (PDF格式)一书的时候,发现遍历树的两种算法:深度优先和广度优先遍历文挡树,前一种需要使用递归,后者则不需要,本人大学时期数据结构学的不好,每每涉及到树,总 ...

  2. XML文档定义有几种形式?解析XML文档有哪几种方式?

    XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式? a: 两种形式 dtd schema,b: 本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上 ...

  3. 图文详解两种算法:深度优先遍历(DFS)和广度优先遍历(BFS)

    图文详解两种算法:深度优先遍历(DFS)和广度优先遍历(BFS) 阅读本文前,请确保你已经掌握了递归.栈和队列的基本知识,如想掌握搜索的代码实现,请确保你能够用代码实现栈和队列的基本操作. 深度优先遍 ...

  4. XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?

    XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式? XML文档定义分为DTD和Schema两种形式,二者都是对XML语法的约束.其本质区别在于Schema本身也是一个XML文 ...

  5. php循环获取xml节点,PHP_PHP遍历XML文档所有节点的方法,本文实例讲述了PHP遍历XML文档 - phpStudy...

    PHP遍历XML文档所有节点的方法 本文实例讲述了PHP遍历XML文档所有节点的方法.分享给大家供大家参考.具体实现方法如下: 1. contact.xml代码: J J J Manager Nati ...

  6. 用JavaScript语言通过DOM遍历XML文档

    实验结果要求如下: 解决步骤: 1.  首先是布局,左边用表格比较方便,右边是个div块. 2.  嵌入JavaScript脚本,由易到难,写定义全部显示的功能函数.显示姓名功能函数,显示属性功能函数 ...

  7. PDF文档压缩的两种简单方法

    我们无论在办公中还是在上网查找资料时,经常会遇到PDF文档.工作中,传送邮件时需要PDF文档格式的,但是PDF文档太大也是个棘手的问题.大多数公司邮箱上传附件大小是限制在5M以下的,否则就会出现接收失 ...

  8. 深度优先搜索(DFS)和广度优先搜索(BFS)两种算法c++

    1.BFS和DFS介绍 深度优先搜索(DFS)和广度优先搜索(BFS)是一种用于遍历或搜索树图的一种算法,在这个过程中保证图或数的每个结点被访问且仅被访问一次,再按照每个结点访问的顺序不同分为深搜和广 ...

  9. 剪拼子字符串——常规、另类两种算法解CSDN竞赛第八期第一小题

    [点击此处跳转笔记正文] Python 官网:https://www.python.org/ Free:大咖免费"圣经"教程< python 完全自学教程>,不仅仅是基 ...

最新文章

  1. 炉石android更新日志,炉石传说每逢更新必卡门,安卓用户你们想哭了吗?
  2. [云炬python学习笔记]Numpy中内置函数min(),max(),sum()与Python中内置函数min(),max(),sum()性能对比分析
  3. Spring Boot + Vue 前后端分离,两种文件上传方式总结
  4. 7nfs客户端没权限_Ant design pro v4-服务器菜单和路由权限控制
  5. 窗口类、窗口类对象与窗口 三者之间关系
  6. 一周消息树:程序员想找好工作?那就学好Linux!
  7. 埃夫特机器人示教器keba_埃夫特下一代智能工业机器人研发及产业化项目奠基...
  8. 移动机器人参数校准的原由
  9. STM32——库函数流水灯程序
  10. easyMule自动关机工具(可用于1.X和2.0版本)
  11. 汉字的计算机内吗就是汉字输入码,汉字输入编码
  12. Windows 10调整色温显示器
  13. Hadoop 面试总结
  14. Python 3.8 官网文档(中文版附下载)
  15. 基于宽表的数据建模应用
  16. 房贷收入证明是月供的几倍?
  17. 7个等级 容灾等级_容灾备份的柒个国际标准等级(一)
  18. Clickhouse打包aarch64二进制文件
  19. Graphviz画决策树中文乱码解决
  20. python朋友圈教程_Python 生成你的朋友圈九宫格图片

热门文章

  1. 牛客网模拟笔试——膨胀的牛牛(JavaScript)
  2. 上午的工作多以学习为主
  3. 马上就5g时代了,5g时代有什么风口吗?
  4. 单反相机很久没有更新产品问世了,真的已经被抛弃了吗?
  5. 一个人开长途车旅游安全吗?
  6. 每日吃三颗红枣,对我们的身体有什么影响?
  7. web安全这个行业的前景怎么样?
  8. mac文件丢失,苹果电脑有没有好用的恢复软件?
  9. Qt4_子类化QMainWindow
  10. 死锁的处理策略——预防死锁