我们现在可以通过各种渠道去了解一个技术的特点。比如在对.NET Framework的学习过程中,就可以通过个证方式来帮助我们完成学习目的。在这里先来了解一下有关.NET Framework遍历XML文挡树的几种实现方法。#t#
另外这个.NET Framework遍历XML文挡树的例子不错,还可以学到.net的XML DOM的一些操作方法.
- /**//// <summary>
- /// 深度优先遍历文挡树(递归方法)
- /// </summary>
- /// <param name="currentNode">
当前节点</param> - public void DOMDepthFirst
(XmlNode currentNode) - {
- XmlNode node = currentNode.
FirstChild ; - while ( node != null )
- {
- DOMDepthFirst( node ) ;
- nodenode = node.NextSibling ;
- }
- //do something else with
currentNode herer - }
- /**//// <summary>
- /// 广度优先遍历文挡树(非递归)
- /// </summary>
- /// <param name="root">遍历的入口点,
如果需要遍历整个文挡则是XmlDocument对象- </param>
- public void DOMBreadthFirst
(XmlNode root)- {
- Queue queue = new Queue() ;
- queue.Enqueue(root) ;
- XmlNode currentNode = null ;
- try
- {
- while (true)
- {
- //如果queue为空,则抛错,跳出try section,
这里是while循环的退出条件- currentNode = (XmlNode)queue.Dequeue() ;
- if (currentNode.HasChildNodes)
- {
- foreach (XmlNode child in currentNode.
ChildNodes)- {
- queue.Enqueue(child) ;
- }
- }
- }
- }
- catch(System.InvalidOperation
Exception ex)- {
- //throw ex ;
- }
- }
.NET Framework遍历XML文挡树使用方法:
- XmlDocument doc = new
XmlDocument() ;- doc.Load("test.xml") ;
- DOMDepthFirst(doc) ;
- DOMBreadthFirst(doc) ;