WEB开发网
开发学院WEB开发Xml 对于任意的XML的遍历 阅读

对于任意的XML的遍历

 2006-11-09 11:25:34 来源:WEB开发网   
核心提示:class test { PRivate static string root; public static void showxml(string path) { XmlDocument xd = new XmlDocument(); xd.Load(path); XmlNodeList xnl

class test
     {
       PRivate static string root;

     public static  void showxml(string path)
       {
         XmlDocument xd = new XmlDocument();
         xd.Load(path);
        
         XmlNodeList xnl = xd.DocumentElement.ChildNodes;
         root = xd.FirstChild.NextSibling.Name;//记录根节点

       Console.Write(root+"\n");

       foreach (XmlNode xn in xnl)
         {
           //Console.Write(xn.Attributes["name"].Value.ToString()+"\n");
           XmlNode child = xn.FirstChild;
          
           NodeOperate(child);
       

       }
       }

     public static  void NodeOperate(XmlNode xn1)
       {

       if (xn1.HasChildNodes == true)
         {
           Console.Write(xn1.Name + "\n");
           Console.Write("\n");
           XmlNode childNode = xn1.FirstChild;
          
           NodeOperate(childNode);

       }
         else
         {
           Console.Write(xn1.Name + "\n");
           Console.Write(xn1.InnerText);
           Console.Write("\n");
           if (xn1.NextSibling != null)
           {
            
             NodeOperate(xn1.NextSibling);
           }
           else
           {
             int flag = 0;
             while (xn1.NextSibling == null)
             {
             
              
               if (xn1.Name == root)//检查是否到了根节点,如果不检查会出现节点的引用错误
               {
                 flag = 1;
                 break;
               }
               else
               {

               xn1 = xn1.ParentNode;
               }
              
             }
             if (flag == 0)
             {
               NodeOperate(xn1.NextSibling);
             }
             else if(flag==1)
             {
               Console.Write("End");
             }
           }

        
         }
       }
     }


     public static void Main()
     {
     
       test.showXML(@"C:\Documents and Settings\SKY\My Documents\Visual Studio 2005\Projects\Project1\Project1\system.xml");
       Console.Read();

   }

Tags:对于 任意 XML

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接