Einzelnen Beitrag anzeigen

Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#1

XML Verarbeitung variabel machen

  Alt 30. Apr 2008, 09:09
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='computerdatenthen begin
        for k:=0 to CdNode.ChildNodes.Count-1 do
        begin
          PNode:=CdNode.ChildNodes[k];
          if PNode.NodeName='mainboardthen 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.
  Mit Zitat antworten Zitat