procedure TForm1.BitBtn1Click(Sender: TObject);
var
I: Integer;
XMLDoc: IXMLDOMDocument2;
Smiley, Bedeut: IXMLDOMNode;
Smileys: IXMLDOMNodeList;
begin
//
XML COM Interface laden
XMLDoc := CoDOMDocument40.Create;
XMLDoc.setProperty('NewParser', True);
//
XML Datei laden
XMLDoc.load('smiley.xml');
// Fehler überprüfen
if XMLDoc.parseError.errorCode <> 0 then
begin
ShowMessage('
XML Fehler: '#13#10 + XMLDoc.parseError.reason);
Exit;
end;
// alle smilies Nodes heranholen
Smileys := XMLDoc.documentElement.selectNodes('smilies');
// stringgrid größe setzen
StringGrid1.RowCount := Smileys.length;
StringGrid1.ColCount := 2;
StringGrid1.ColWidths[0] := 50;
StringGrid1.ColWidths[1] := 300;
StringGrid1.FixedCols := 0;
StringGrid1.FixedRows := 0;
// alle smileys laden
for I := 0 to Pred(Smileys.length) do
begin
// nodes mit inhalt heranholen
Smiley := Smileys.item[I].selectSingleNode('smiley');
Bedeut := Smileys.item[I].selectSingleNode('bedeut');;
// texte ins grid bringen
if Assigned(Smiley) then
StringGrid1.Cells[0, I] := Smiley.text;
if Assigned(Bedeut) then
StringGrid1.Cells[1, I] := Bedeut.text;
end;
// optional, Delphi gibt interfaced
COM Objekte automatisch frei !
Smileys := nil;
Smiley := nil;
Bedeut := nil;
XMLDoc := nil;
end;