Deine Frage ist etwas ungenau.
Also <suspend> und <scenario> sind Elemente (zu einem Element gehört auch noch der schliesende Tag).
start="226218" usw. sind Attribute.
Du könntest alle Elemente besuchen und dann alle Attribute des jeweiligen Element auslesen.
Diese Elemente und Attribute sind hierarchisch geschachtelt; deshalb ist ein TreeView sehr gut geeignet um eine
XML-Datei darzustellen.
Um die Elemente abzugrasen, ist ein
rekursiver Code sehr nützlich:
Delphi-Quellcode:
// das Beispiel lässt sich so nicht kompilieren,
// sondern soll nur das Grundprinzip zeigen
procedure TForm1.BesucheElement(e:TXmlElement; level:integer);
begin
Memo.Lines.Add(StringOfChar(' ',level) + e.NodeName);
for i:=0 to e.ElementCount-1 do
BesucheElement(e.Elements[i], level+1);
end;
Mit StringOfChar() wird zusammen mit dem Parameter level eine Einrückung entsprechend den Elementebene erzeugt.
Jetzt fehlen noch die Attribute:
Delphi-Quellcode:
procedure TForm1.BesucheElement(e:TXmlElement; level:integer);
begin
Memo.Lines.Add(StringOfChar(' ',level) + e.NodeName);
for j:=0 to e.AttributCount-1 do
Memo.Lines.Add(StringOfChar(' ',level) + e.Attributes[j].NodeName + '=' + e.Attributes[j].NodeValue);
for i:=0 to e.ElementCount-1 do
BesucheElement(e.Elements[i], level+1);
end;
Der Aufruf sieht ungefähr so aus:
Delphi-Quellcode:
Memo.Clear;
// das Wurzelelement beginnt mit Level 0; also ohne Einrückung
BesucheElement(XmlDocument.DocumentElement, 0);
Je nachdem, welchen
XML Parser du verwendest, kann die Syntax von meinem Beispiel abweichen, aber das Grundprinzip bleibt gleich.