Ich habe das auch mal isoliert, bin aber noch zu keinem Ergebnis gekommen:
Delphi-Quellcode:
uses xmldoc, xmlintf;
procedure TForm1.Button1Click(Sender: TObject);
var
lng : TXMLDocument;
MainNav, Level1, Level2, Level3, Attribute : IXMLNode;
i : integer;
NavigationArray : TStringDynArray;
begin
lng := TXMLDocument.Create(Self);
lng.Active := True;
for i := 0 to Memo1.Lines.Count-1 do
begin
NavigationArray := Explode(';', Memo1.Lines[i]);
try
if (navigationArray[0] <> '') and (lng.ChildNodes.FindNode(navigationArray[0]) = nil) then
begin
mainNav := lng.AddChild(navigationArray[0]);
end;
if (navigationArray[1] <> '') and (mainNav.ChildNodes.FindNode(navigationArray[1]) = nil) then
begin
level1 := lng.ChildNodes.FindNode(navigationArray[0]);
attribute := level1.AddChild(navigationArray[1]);
end;
if (navigationArray[2] <> '') and (level1.ChildNodes.FindNode(navigationArray[2])= nil) then
begin
level2 := level1.ChildNodes.FindNode(navigationArray[1]);
attribute := level2.AddChild(navigationArray[2]);
end;
if (navigationArray[3] <> '') and (level2.ChildNodes.FindNode(navigationArray[3])= nil) then
begin
level3 := level2.ChildNodes.FindNode(navigationArray[2]);
attribute := level3.AddChild(navigationArray[3]);
end;
except
break;
end;
end;
lng.SaveToFile('c:\temp\test.xml');
lng.Free;
end;
Einfach ein Memo und einen Button auf das Form und in das Memo den
CSV-text pasten.