
02.09.2011, 15:00
|
 |
Let Me Show You
|
|
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
|
|
вот один из вариантов:
Код:
type
TForm1 = class(TForm)
Button1: TButton;
DataSource1: TDataSource;
ClientDataSet1: TClientDataSet;
DBGrid1: TDBGrid;
OpenDialog1: TOpenDialog;
XMLDocument1: TXMLDocument;
var
l: Integer;
i: Integer;
ADOMNodeList: IDOMNodeList;
ADOMNode: IDOMNode;
j: Integer;
begin
if OpenDialog1.Execute then
begin
XMLDocument1.LoadFromFile(OpenDialog1.FileName);
ADOMNodeList:=XMLDocument1.DOMDocument.getElementsByTagName('ROW');
l:=ADOMNodeList.length;
for i:=0 to l-1 do
begin
ADOMNode:=ADOMNodeList.item[i];
if i=0 then
begin
ClientDataSet1.FieldDefs.Clear;
for j:=0 to ADOMNode.childNodes.length-1 do
begin
ClientDataSet1.FieldDefs.Add(ADOMNode.childNodes.item[j].nodeName, ftString, 10);
end;
ClientDataSet1.CreateDataSet;
end;
ClientDataSet1.Append;
for j:=0 to ADOMNode.childNodes.length-1 do
begin
if ADOMNode.childNodes.item[j].childNodes.length>0 then
ClientDataSet1.FieldByName(ADOMNode.childNodes.item[j].nodeName).AsString:=
ADOMNode.childNodes.item[j].childNodes.item[0].nodeValue
else if ADOMNode.childNodes.item[j].attributes.length>0 then
ClientDataSet1.FieldByName(ADOMNode.childNodes.item[j].nodeName).AsString:=
ADOMNode.childNodes.item[j].attributes.item[0].nodeValue;
end;
ClientDataSet1.Post;
end;
end;
__________________
Пишу программы за еду.
__________________
|