我想的xml的文件的nodevlaue导入自已建立的树中,树的定义大概为  StructTree = ^TStructTree;
  TStructTree = record
     ParentNode: StructTree;
     Attribute: String;
  end;
XML文件的树型不止两级,有多级, 并将所建的树存到treeview控件上
我该怎么做啊,能帮我写出主要的建树程序吗???(能沾上边就给分)或许你有更好的方案,不访也提出来,也有分哦
先上100分,如觉得不够可另加

解决方案 »

  1.   

    用ADOTable的方法SaveToFile('xxx.xml', pfXML);
    这个XML文件不规范,少了XML的DECLARATION。
      

  2.   

    我要的是从XML读取 --> 建树后再读入 ---> TTreeview
    为的是以后从其他地方读取--> 建树后再读入 ---> TTreeview做基础
      

  3.   

    function XMLToTree(mXMLDocment: TXMLDocument; mTreeView: TTreeView): Boolean;
      procedure pXMLToTree(mXMLNode: IXMLNode; mTreeNode: TTreeNode);
      var
        I: Integer;
        vTreeNode: TTreeNode;
      begin
        if SameText(mXMLNode.NodeName, '#text') then
          vTreeNode := mTreeView.Items.AddChild(mTreeNode, mXMLNode.NodeValue)
        else vTreeNode := mTreeView.Items.AddChild(mTreeNode, mXMLNode.NodeName);
        for I := 0 to mXMLNode.ChildNodes.Count - 1 do
          pXMLToTree(mXMLNode.ChildNodes[I], vTreeNode);
      end;
    var
      I: Integer;
    begin
      Result := False;
      if not (Assigned(mXMLDocment) and Assigned(mTreeView)) then Exit;
      mTreeView.Items.BeginUpdate;
      try
        mTreeView.Items.Clear;
        for I := 0 to mXMLDocment.ChildNodes.Count - 1 do
          pXMLToTree(mXMLDocment.ChildNodes[I], nil);
      finally
        mTreeView.Items.EndUpdate;
      end;
      Result := True;
    end; { XMLToTree }procedure TForm1.Button1Click(Sender: TObject);
    begin
      XMLDocument1.LoadFromFile('c:\temp\temp.xml');
      XMLToTree(XMLDocument1, TreeView1);
    end;