如何将 dbTreelist 保存为 XML 文件

问题描述 投票:0回答:1

我有一个 dbTreelist 如下:

迭代没有问题,但如果我想将其保存为 XML 文件(使用 IXMLNODE 等),这没有帮助。我认为实现目标的最好方法是递归,但我惨败了。我得到了所有节点,但每个节点都是其前任节点的一部分,因此没有树结构。有人对我有想法吗?非常感谢。

我尝试通过递归但没有成功(生成的 XML 文件中没有树结构)

xml delphi recursion
1个回答
0
投票

感谢您的评论! @AmigoJack:你是绝对正确的,没有代码=没有答案/兴趣。对不起!经过多次尝试和错误,我尝试通过递归但没有成功(生成的 XML 文件中没有树结构)找到了解决方案:

    procedure TForm1.AddChildNodes(ParentNode: TcxTreeListNode; 
    XMLParentNode: IXMLNode);
    var
      ChildNode: TcxTreeListNode;
      XMLChildNode:  IXMLNode;
      I: Integer;
    begin
      for I := 0 to ParentNode.Count - 1 do
      begin
        ChildNode := ParentNode.Items[I];
        XMLChildNode := XMLParentNode.AddChild(ChildNode.Texts[0]);
        AddChildNodes(ChildNode, XMLChildNode);
      end;
    end;
    
    procedure TForm1.ButtonClick(Sender: TObject);
    var
      XMLDoc: IXMLDocument;
    begin
      XMLDoc := TXMLDocument.Create(nil);
      XMLDoc.Active :=  true;
      XMLDoc.DocumentElement := XMLDoc.CreateElement('Treelist', '');
    
      AddChildNodes(cxTreeList1.Root, XMLDoc.DocumentElement);
    
      XMLDoc.SaveToFile('Test.xml');
      ShowMessage('Test.xml saved!');
    end;
© www.soinside.com 2019 - 2024. All rights reserved.