我有一个 dbTreelist 如下:
迭代没有问题,但如果我想将其保存为 XML 文件(使用 IXMLNODE 等),这没有帮助。我认为实现目标的最好方法是递归,但我惨败了。我得到了所有节点,但每个节点都是其前任节点的一部分,因此没有树结构。有人对我有想法吗?非常感谢。
我尝试通过递归但没有成功(生成的 XML 文件中没有树结构)
感谢您的评论! @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;