Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: Units verfügbar Typen wie zB. IDOMNodeSelect nicht vorha

  Alt 31. Mai 2006, 18:47
Als Einstieg für MSXML
Delphi-Quellcode:
var
   dom : IXMLDOMDocument2;
   ElemList: IXMLDOMNodeList;
begin
   dom := CoDOMDocument.Create;
   dom.load('C:\test.XML'); // dokument laden

   Memo1.Lines.Clear;
   ElemList := dom.documentElement.childNodes;

   ShowChilds(ElemList, 1000, 0); // alles rekursiv anzeigen
end;
Delphi-Quellcode:
procedure TForm1.ShowChilds(childs: IXMLDOMNodeList; maxcount: Integer;level:Integer);
var
   i,j,anzahl : Integer;
   s : string;
   attr : IXMLDOMNamedNodeMap;
   node : IXMLDOMNode;
begin
   for i := 0 to childs.length-1 do
   begin
      node := childs.item[i];

      try
         s := node.nodevalue;
      except
         s := ''
      end;
      outputline(node.nodeName+' : '+s, level);

      attr := node.attributes;
      if Assigned(attr) then
      begin
      for j := 0 to attr.length-1 do
         begin
            try
              outputline(attr.item[j].Get_nodeName+'='+attr.item[j].Get_nodeValue, level);
            except
            end;
         end;
      end;

      // rekursiv eine Ebene tiefer
      ShowChilds(node.childNodes, maxcount, level+1);
      if i >= maxcount then
         break;
   end;
end;

// Ausgabe im Memo
// mit parameter level wird eingerückt
procedure TForm1.outputline(const s: string; level: Integer);
begin
   Memo1.Lines.Add(StringOfChar('.', level)+s);
end;
Andreas
  Mit Zitat antworten Zitat