类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
Delphi中如何将XML文件解析并放入TreeView中?
网友回答:
你需要自己写一点代码但是很简单;
简单写一个递归程序供你参考
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编译器,其中可能有些错误.有问题再提出来吧
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;