Danke für das Beispiel; Anbei der Code zum schreiben einer
XML Datei, ein Graph mit 20 Knoten und die Knoten jeweils mit 2 Ecken verbunden :
Delphi-Quellcode:
var
I, J, L: Integer;
Graphml: IXMLGraphmltype;
Graph: IXMLGraphtype;
Node: IXMLNodetype;
Data: IXMLDatatype;
XMLDoc: IXMLDocument;
Newkey: IXMLKeytype;
NewNode: IXMLNode;
NewEdge : IXMLEdgetype;
begin
/// erzeuge eine einfache graphml / XML Datei
XMLDoc := TXMLDocument.Create(
nil);
XMLDoc.Active := True;
Graphml := Newgraphml;
i:=1;
Newkey := Graphml.Key.Add;
Newkey.Id := '
KEY'+IntToStr(I);
Newkey.For_ := '
egde';
i:=2;
Newkey := Graphml.Key.Add;
Newkey.Id := '
KEY'+IntToStr(I);
Newkey.For_ := '
node';
for I := 1
to 20
do
begin
NewNode := Graphml.Graph.Add.Node.Add;
NewNode.Attributes['
name'] := '
node' + IntTostr(i);
end;
for I := 1
to 19
do
begin
NewEdge := Graphml.Graph.Add.Edge.Add;
NewEdge.Attributes['
name'] := '
edge' + IntTostr(i);
NewEdge.Source := '
node' + IntTostr(i);
NewEdge.Target := '
node' + IntTostr(i+1);
end;
NewEdge := Graphml.Graph.Add.Edge.Add;
NewEdge.Attributes['
name'] := '
edge' + IntTostr(i);
NewEdge.Source := '
node' + IntTostr(20);
NewEdge.Target := '
node' + IntTostr(1);
mmo1.Text := Graphml.Xml;
XMLDoc.xml.SaveToFile('
e:\test.xml');
mmo1.lines.SaveToFile('
e:\test_lib.graphml');
end;
OK, ich bekomme jetzt eine
XML Datei, wenn ich das memo abspeichere.
Der aktuelle Fehler liegt aber in der Struktur der
XML Datei. um jede Node oder Edge wird ein Begin/End <graph> Tag geschrieben, dies ist natürlich so falsch, wie kann man diesen Fehler beheben ??
Delphi-Quellcode:
<graphml><key id="KEY1" for="egde"/><key id="KEY2" for="node"/>
<graph>
<node name="node1"/>[B]</graph><graph>[/B]<node name="node2"/>[B]</graph><graph>[/B]
<node name="node3"/>[B]</graph><graph>[/B]<node name="node4"/>[B]</graph><graph>[/B]<node name="node5"/>