Der Parser ist in Delphi doch schon drin?!
Hattest du noch nie zuvor mit
XML in Delphi gearbeitet?
Anbei als Anhang ein Beispiel zum Einlesen deiner Beispiel-
XML mit angepasster graphmlstructure.pas, der man jetzt auch
XML-Text oder Dateien vorwerfen kann (Getgraphml() und Loadgraphml() Funktionen):
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
var
I, J, L: Integer;
Graphml: IXMLGraphmltype;
Graph: IXMLGraphtype;
Node: IXMLNodetype;
Data: IXMLDatatype;
XMLDoc: IXMLDocument;
GraphMLTreeNode, GraphTreeNode, NodeTreeNode: TTreeNode;
begin
XMLDoc := LoadXMLData(Memo1.Lines.Text);
Graphml := Getgraphml(XMLDoc);
TreeView1.Items.BeginUpdate;
try
GraphMLTreeNode := TreeView1.Items.Add(nil, Graphml.NodeName);
for I := 0 to Graphml.Graph.Count - 1 do
begin
Graph := Graphml.Graph.Items[I];
GraphTreeNode := TreeView1.Items.AddChild(GraphMLTreeNode, Graph.NodeName + ' ' + Graph.Id);
for J := 0 to Graph.Node.Count - 1 do
begin
Node := Graph.Node.Items[J];
NodeTreeNode := TreeView1.Items.AddChild(GraphTreeNode, Node.NodeName + ' ' + Node.Id);
for L := 0 to Node.Data.Count - 1 do
begin
Data := Node.Data.Items[L];
TreeView1.Items.AddChild(NodeTreeNode, Data.NodeName + ' ' + Data.Key + ': ' + Data.NodeValue);
end;
end;
end;
finally
TreeView1.FullExpand;
TreeView1.Items.EndUpdate;
end;
end;