结构如下
   Root1
    Node1
     File1
     File2
     SubNode1
    Node2
     SubNode2
       files3
       files4
   Root2
    .......
问题:
(1)将一些数据加到这个文件中,就是root等是具体的某些数据。(2)现文件中只有root1,root2,在加数据时可能会有root3,因此想用程序来实现xml文件的增减

解决方案 »

  1.   

    可能我写得不够明白。
    (1)就是如何往一个xml文件中写入数据。
    (2)如何动态的增减xml文件中的数据
      

  2.   

    给你一个例子,利用TXMLDocument打开XML文件,RootNode就是TXMLDocument的DocumentElement.
    //添加一个新语句
    procedure TBusinessParam.AddClause(const ClauseId, ClauseName: string; WordList: TStringList);
    var
      I: Integer;
      CurNode, ChildNode, ListNode: IXMLNode;
    begin
      CurNode := RootNode.ChildNodes.FindNode('Assembler');
      CurNode := CurNode.ChildNodes.FindNode('AssemblerDefine');
      ChildNode := CurNode.AddChild('AssemblerClause');  ChildNode.AddChild('ClauseId').Text := ClauseId;
      ChildNode.AddChild('ClauseName').Text := ClauseName;  ListNode := ChildNode.AddChild('WordList');
      for I := 0 to WordList.Count - 1 do
      begin
        ChildNode := ListNode.AddChild('Word');
        ChildNode.Attributes['Type'] := WordList.Names[I];
        ChildNode.Text := WordList.ValueFromIndex[I];
      end;
      
      ....
    end;
      

  3.   

    上面的省略号中应该有这样一句
      XMLFile.SaveToFile(XMLFile.FileName);XMLFile就是一个TXMLDocument的Object
      

  4.   

    将treeview数据转为xml.下面这个程序转之后,老是和原始的treeview数据不一致。哪位大虾能帮我看一下
    function TForm1.AllOverTreeView(node:TTreenode):TTreenode; 
    var
     ParentNode,CurNode2,CurNode3:IXMLNode;
    begin
     while node<>nil do
     begin
       ParentNode:=CurNode1.AddChild(node.Text);
       if node.HasChildren then
       begin
        node:=node.getFirstChild;
        CurNode2:=ParentNode.AddChild(node.Text);
        allovertreeview(node);
        node:=node.Parent;
      end;
      if node.getNextSibling<>nil then
      begin
        node:=node.getNextSibling;
        CurNode3:=CurNode1.AddChild(node.Text);
      end else
       exit;
     end;
    end;
    procedure TForm1.Button2Click(Sender: TObject);
    var
    parentnode:TTreenode;
    begin
     XMLDocument2.Active:=True;
     XMLDocument2.Encoding:='GB2312';
     parentnode:=treeview1.Selected;
     CurNode1:=XMLDocument2.AddChild('Crp');
     AllOverTreeView(parentnode);
     XMLDocument2.SaveToFile('c:\prj.xml');
    end;