Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i, j: integer;
begin
XMLDocument1.LoadFromFile('test.xml');
XMLDocument1.Active:= true;
with XMLDocument1.DocumentElement.ChildNodes['city'] do
for i := 0 to ChildNodes.Count-1 do
if ChildNodes.Nodes[i].NodeName = 'step' then
with StringGrid1 do
begin
RowCount:= RowCount+1;
Cells[0,RowCount-1]:= VarToStr(ChildNodes['cityname'].Text);
Cells[1,RowCount-1]:= VarToStr(ChildNodes['citytime'].Text);
for j := 0 to ChildNodes.Nodes[i].ChildNodes.Count-1 do
Cells[j+2, RowCount-1]:= VarToStr(ChildNodes.Nodes[i].ChildNodes.Nodes[j].Text);
end;
XMLDocument1.Active := false;
end;
Небольшой ликбез - конструкция with..do специально создана для сокращения набивки на клаве повторяющихся структур, и поэтому, "ледяной лёд" в виде
Код:
with XMLDocument1.DocumentElement.ChildNodes['city'] do
begin
StringGrid1.Cells[1,StringGrid1.RowCount-1]:=VarToStr ({XMLDocument1.DocumentElement.ChildNodes['city'].}ChildNodes['cityname'].Text);
StringGrid1.Cells[2,StringGrid1.RowCount-1]:=VarToStr ({XMLDocument1.DocumentElement.ChildNodes['city'].}ChildNodes['citytime'].Text);
end;
совершенно необязателен, всё, что в фигурных скобках можно смело выбросить, клавина мембрана пасибки не раз скажет :-)