资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 软件开发 >
Advertisement
文章正文

急求:Delphi中如何将XML文件解析并放入TreeView中?

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   

Delphi中如何将XML文件解析并放入TreeView中?

网友回答:

发表者:Cipherliu

你需要自己写一点代码但是很简单;  
  简单写一个递归程序供你参考  
   
  procedure   XMLToTreeView(XMLNode:IXMLNode;RootNode:TTreeNode;View:TTreeView);  
  var  
      i:integer;  
      node:TTreeNode;  
  begin  
      node:=View.AddChild(RootNode,XMLNode.Name);  
      for   i:=0   to   XMLNode.childNods.Count-1   do  
   
          XMLToTree(XMLNode.childNods[i],node,View);  
   
  end;  
   
  在主程序中调用  
   
  XMLToTree(XMLDocument.DocElement,nil,TreeView);  
   
  我这里没有Delphi编译器,其中可能有些错误.有问题再提出来吧  
 

发表者:xywu

var    
      Procedure   Domtotree(xmlnode:ixmlnode;Treenode:Ttreenode);  
  Procedure   Tform1.Domtotree(xmlnode:ixmlnode;Treenode:TTreenode);  
  Var  
      i:Integer;  
      newtreenode:Ttreenode;  
      Nodetext:string;  
      Attrnode:ixmlnode;  
  Begin  
      If   not(xmlnode.NodeType=ntElement)   Then  
          exit;  
      nodetext:=xmlnode.NodeName;  
      If   xmlnode.IsTextElement   Then  
      Begin  
          Nodetext:=Nodetext+=+Xmlnode.NodeValue;  
          memo1.Lines.Add(nodetext);  
      End;  
      NewTreenode:=Treeview1.Items.AddChild(treenode,Nodetext);  
      For   i:=0   To   xmlnode.AttributeNodes.Count-1   Do  
      Begin  
            Attrnode:=xmlnode.AttributeNodes.Nodes[i];  
            Treeview1.items.AddChild(newtreenode,[+Attrnode.NodeName+=+Attrnode.Text+]);  
      End;  
      If   xmlnode.HasChildNodes   Then  
          For   i:=0   TO   xmlnode.ChildNodes.Count-1   Do  
              domtotree(xmlnode.ChildNodes.Nodes[i],newtreenode);  
  End;  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
      mXmlDoc:   TXMLDocument;  
      root:Ixmlnode;  
      parent_node:Ixmlnode;  
      icount:integer;  
  begin  
        If   opendialog1.Execute   Then  
        Begin  
            xmldocument1.LoadFromFile(opendialog1.filename);  
            treeview1.Items.Clear;  
            domtotree(xmldocument1.DocumentElement,nil);  
            Treeview1.FullExpand;  
        End;  
        //Memo1.Lines.Add(root.ChildNodes.);  
  end;


 

 
热门推荐笔记本: 长城笔记本
相关文章:
笔记本相关:
IT技术文章:
webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
©2007 popbb.net All Rights Reserved