
27.03.2018, 04:38
|
 |
LMD-DML
|
|
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
|
|
Цитата:
Сообщение от LIONSMILE
...почему не читает значения из тэга <pos>?...
|
Видимо, нестандартная разметка xml, поскольку при методовом разборе тег содержит лишь комментарий типа <pos> xmlns="http://www.opengis.net/gml"></pos>, так и не понял, почему такое происходит, но можно "ручками" разобрать, кстати, там их несколько
Код:
procedure TForm1.Button3Click(Sender: TObject);
var
s: string;
i,j,b: integer;
begin
XMLDocument1.LoadFromFile('yandex.txt');
XMLDocument1.Active:= true;
// Выдёргиваются данные первого тега <pos>
{
s:= VarToStr(XMLDocument1.DocumentElement.ChildNodes.Nodes['GeoObjectCollection'].XML);
j:= Pos('<pos>', s)+5;
i:= Pos('</pos>',s);
s:= Copy(s, j, i-j);
j:= Pos(' ', s);
Edit1.Text:= Copy(s,1,j-1);
Edit2.Text:= Copy(s,j+1,(Length(s)-j)+1);
}
// Разбираются все
for b := 0 to XMLDocument1.XML.Count-1 do
with StringGrid1 do
if Pos('<pos>', XMLDocument1.XML[b]) > 0 then
begin
RowCount:= RowCount+1;
s:= XMLDocument1.XML[b];
j:= Pos('<pos>', s)+5;
i:= Pos('</pos>',s);
s:= Copy(s, j, i-j);
j:= Pos(' ', s);
Cells[0,RowCount-1]:= Copy(s,1,j-1);
Cells[1,RowCount-1]:= Copy(s,j+1,(Length(s)-j)+1);
end;
XMLDocument1.Active:= false;
end;
|