Hey,
ich habe vor einiger Zeit schonmal eine Frage gestellt, wie ich ein
XML Dokument auslese.
Nun habe ich nochmal eine erweiterte Frage:
Mit diesem Code erhalte ich meine notwendigen Daten:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var xml : TXMLDocument;
CNode : IXMLNode;
CdNode : IXMLNode;
PNode : IXMLNode;
i,j,k : Integer;
begin
XML := TXMLDocument.Create(
nil);
XML.XML.Text := Memo1.Lines.Text;
XML.Options := [doNodeAutoCreate,doAutoSave];
XML.Active:=true;
for i:=0
to XML.ChildNodes.Count-1
do
begin
for j:=0
to XML.ChildNodes[i].ChildNodes.Count-1
do
begin
CdNode:=
XML.ChildNodes[i].ChildNodes[j];
if CdNode.NodeName='
computerdaten'
then begin
for k:=0
to CdNode.ChildNodes.Count-1
do
begin
PNode:=CdNode.ChildNodes[k];
if PNode.NodeName='
mainboard'
then ShowMessage(PNode.NodeValue);
// deine Variable
end;
end;
end;
end;
end;
...aber durch die beiden for-Schleifen, bin ich auf folgende Struktur angewiesen:
XML-Code:
<computer>
<computerdaten>
<mainboard>Asus</mainboard>
<cpu>Athlon X2 6000+</cpu>
<
ram>2 GB</
ram>
<festplatte>160 GB</festplatte>
</computerdaten>
<computerdaten>
<mainboard>
MSI</mainboard>
<cpu>Intel QuadCore</cpu>
<
ram>4 GB</
ram>
<festplatte>500 GB</festplatte>
</computerdaten>
</computer>
Eine Struktur wie diese hier funktioniert da nicht:
XML-Code:
<computer>
<computerdaten>
<gehaeuse>
<mainboard>Asus</mainboard>
<cpu>Athlon X2 6000+</cpu>
<
ram>2 GB</
ram>
<festplatte>160 GB</festplatte>
</gehaeuse>
</computerdaten>
<computerdaten>
<gehaeuse>
<mainboard>
MSI</mainboard>
<cpu>Intel QuadCore</cpu>
<
ram>4 GB</
ram>
<festplatte>500 GB</festplatte>
</gehaeuse>
</computerdaten>
</computer>
Wie kann ich meinen Code oben (den mit den for-Schleifen) variabel machen, dass ich auch andere Strukturen auslesen kann? Gibt doch Programme die zeigen das alles z.B. in einer TreeView an...die müssen sowas ja auch können.
Ich hoffe mir kann jemand helfen.
Danke.