隨筆-348  評(píng)論-598  文章-0  trackbacks-0
              /// <summary>
              
          /// XML解析器
              
          /// </summary>

              public class XmlParsers
              
          {
                  
          /// <summary>
                  
          /// 公共解析方法
                  
          /// </summary>
                  
          /// <param name="nodeList"></param>
                  
          /// <param name="treeNode"></param>
                  
          /// <param name="table"></param>

                  public static void Parse(XmlNodeList nodeList, TreeNodeCollection treeNode, Hashtable table)
                  
          {
                      
          foreach (XmlNode node in nodeList)
                      
          {
                          
          if (node.NodeType != XmlNodeType.Element)
                          
          {
                              
          continue;
                          }


                          TreeNode newTreeNode 
          = new TreeNode();
                          newTreeNode.Text 
          = node.Attributes["name"].Value;

                          
          //父節(jié)點(diǎn)
                          if (node.HasChildNodes)
                          
          {
                              Parse(node.ChildNodes, newTreeNode.Nodes, table);
                              treeNode.Add(newTreeNode);
                          }

                          
          else
                          
          {
                              
          //子節(jié)點(diǎn)
                              try
                              
          {
                                  
          //如果存在有id的節(jié)點(diǎn)則加入到table中
                                  
          //GISNode gNode = new GISNode();
                                  
          //gNode.Id = node.Attributes["id"].Value;
                                  
          //gNode.Name = node.Attributes["name"].Value;
                                  
          //gNode.Area = node.Attributes["area"].Value;
                                  
          //gNode.Latitude = node.Attributes["latitude"].Value;
                                  
          //gNode.Longitude = node.Attributes["longitude"].Value;
                                  
          //table.Add(gNode.Id, gNode);
                                  
          //treeNode.Add(gNode.Id, gNode.Name);

                                  treeNode.Add(node.Attributes[
          "id"].Value, node.Attributes["name"].Value);
                              }

                              
          catch (Exception ex)
                              
          {
                                  
          //否則丟棄
                              }


                          }


                      }

                  }


                  
          /// <summary>
                  
          /// 解析設(shè)備樹的方法
                  
          /// </summary>
                  
          /// <param name="filePath"></param>
                  
          /// <param name="tv"></param>
                  
          /// <param name="table"></param>

                  public static void ParseEquipmentXml(string filePath, TreeView tv, Hashtable table)
                  
          {
                     
                      XmlDocument xmlDoc 
          = new XmlDocument();
                      xmlDoc.Load(@filePath);

                      XmlNodeList nodeList 
          = xmlDoc.DocumentElement.ChildNodes;

                      tv.BeginUpdate();
                      tv.Nodes.Clear();
                      Parse(nodeList, tv.Nodes, table);
                      tv.EndUpdate();
                  }

              }
          簡(jiǎn)單實(shí)用,不過如果XML都不相同的話可能要寫多個(gè)函數(shù),后面有時(shí)間重構(gòu)一下,通用一點(diǎn)。

          ---------------------------------------------------------
          專注移動(dòng)開發(fā)

          Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
          posted on 2008-02-05 02:47 TiGERTiAN 閱讀(944) 評(píng)論(0)  編輯  收藏 所屬分類: DotNetMapXtreme
          主站蜘蛛池模板: 焦作市| 华阴市| 宜宾市| 逊克县| 金沙县| 古交市| 云南省| 通许县| 孟村| 巴彦县| 福清市| 蕉岭县| 奉节县| 托克逊县| 屏东县| 偏关县| 阿鲁科尔沁旗| 永丰县| 榆树市| 西安市| 珠海市| 开封县| 安平县| 西林县| 乌拉特后旗| 广西| 长汀县| 定西市| 溧水县| 芷江| 仙居县| 嘉黎县| 沧源| 永泰县| 邓州市| 扶绥县| 宜州市| 南江县| 合作市| 加查县| 盈江县|