遍历XML文挡树的两种算法
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文挡树的两种算法相关推荐
- 在.Net framework下遍历XML文挡树的两种算法
在阅读ASP.NET_XML深入编程技术 (PDF格式)一书的时候,发现遍历树的两种算法:深度优先和广度优先遍历文挡树,前一种需要使用递归,后者则不需要,本人大学时期数据结构学的不好,每每涉及到树,总 ...
- XML文档定义有几种形式?解析XML文档有哪几种方式?
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式? a: 两种形式 dtd schema,b: 本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上 ...
- 图文详解两种算法:深度优先遍历(DFS)和广度优先遍历(BFS)
图文详解两种算法:深度优先遍历(DFS)和广度优先遍历(BFS) 阅读本文前,请确保你已经掌握了递归.栈和队列的基本知识,如想掌握搜索的代码实现,请确保你能够用代码实现栈和队列的基本操作. 深度优先遍 ...
- XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式? XML文档定义分为DTD和Schema两种形式,二者都是对XML语法的约束.其本质区别在于Schema本身也是一个XML文 ...
- php循环获取xml节点,PHP_PHP遍历XML文档所有节点的方法,本文实例讲述了PHP遍历XML文档 - phpStudy...
PHP遍历XML文档所有节点的方法 本文实例讲述了PHP遍历XML文档所有节点的方法.分享给大家供大家参考.具体实现方法如下: 1. contact.xml代码: J J J Manager Nati ...
- 用JavaScript语言通过DOM遍历XML文档
实验结果要求如下: 解决步骤: 1. 首先是布局,左边用表格比较方便,右边是个div块. 2. 嵌入JavaScript脚本,由易到难,写定义全部显示的功能函数.显示姓名功能函数,显示属性功能函数 ...
- PDF文档压缩的两种简单方法
我们无论在办公中还是在上网查找资料时,经常会遇到PDF文档.工作中,传送邮件时需要PDF文档格式的,但是PDF文档太大也是个棘手的问题.大多数公司邮箱上传附件大小是限制在5M以下的,否则就会出现接收失 ...
- 深度优先搜索(DFS)和广度优先搜索(BFS)两种算法c++
1.BFS和DFS介绍 深度优先搜索(DFS)和广度优先搜索(BFS)是一种用于遍历或搜索树图的一种算法,在这个过程中保证图或数的每个结点被访问且仅被访问一次,再按照每个结点访问的顺序不同分为深搜和广 ...
- 剪拼子字符串——常规、另类两种算法解CSDN竞赛第八期第一小题
[点击此处跳转笔记正文] Python 官网:https://www.python.org/ Free:大咖免费"圣经"教程< python 完全自学教程>,不仅仅是基 ...
最新文章
- 炉石android更新日志,炉石传说每逢更新必卡门,安卓用户你们想哭了吗?
- [云炬python学习笔记]Numpy中内置函数min(),max(),sum()与Python中内置函数min(),max(),sum()性能对比分析
- Spring Boot + Vue 前后端分离,两种文件上传方式总结
- 7nfs客户端没权限_Ant design pro v4-服务器菜单和路由权限控制
- 窗口类、窗口类对象与窗口 三者之间关系
- 一周消息树:程序员想找好工作?那就学好Linux!
- 埃夫特机器人示教器keba_埃夫特下一代智能工业机器人研发及产业化项目奠基...
- 移动机器人参数校准的原由
- STM32——库函数流水灯程序
- easyMule自动关机工具(可用于1.X和2.0版本)
- 汉字的计算机内吗就是汉字输入码,汉字输入编码
- Windows 10调整色温显示器
- Hadoop 面试总结
- Python 3.8 官网文档(中文版附下载)
- 基于宽表的数据建模应用
- 房贷收入证明是月供的几倍?
- 7个等级 容灾等级_容灾备份的柒个国际标准等级(一)
- Clickhouse打包aarch64二进制文件
- Graphviz画决策树中文乱码解决
- python朋友圈教程_Python 生成你的朋友圈九宫格图片