Einzelnen Beitrag anzeigen

TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Verwendung XML databinding wizard

  Alt 27. Feb 2020, 15:36
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;
Angehängte Dateien
Dateityp: zip GraphMLTest.zip (9,3 KB, 16x aufgerufen)

Geändert von TiGü (27. Feb 2020 um 15:39 Uhr)
  Mit Zitat antworten Zitat