Чтение Xml

Gudzik11

New member
30.11.2011
1
0
#1
Здравствуйте! Облазил весь интернет но так и не нашёл понятного для меня метода . Пожалуйста помогите вывести в Label3 значение
<cloud> но не из категории <day date="2011-11-29" hour="15">
а к примеру <day date="2011-11-29" hour="21">

Код:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, xmldom, XMLIntf, msxmldom, XMLDoc, IdBaseComponent,
IdComponent, IdTCPConnection, IdTCPClient, IdHTTP;

type
TForm1 = class(TForm)
Memo1: TMemo;
Memo2: TMemo;
Memo4: TMemo;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
XMLDocument1: TXMLDocument;
IdHTTP1: TIdHTTP;
procedure Pogoda(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
s : string;

implementation

{$R *.dfm}
function Replace(Str, X, Y: string): string;
{Str - строка, в которой будет производиться замена.
X - подстрока, которая должна быть заменена.
Y - подстрока, на которую будет произведена заменена}

var
buf1, buf2, buffer: string;


begin
buf1 := '';
buf2 := Str;
Buffer := Str;

while Pos(X, buf2) > 0 do
begin
buf2 := Copy(buf2, Pos(X, buf2), (Length(buf2) - Pos(X, buf2)) + 1);
buf1 := Copy(Buffer, 1, Length(Buffer) - Length(buf2)) + Y;
Delete(buf2, Pos(X, buf2), Length(X));
Buffer := buf1 + buf2;
end;

Replace := Buffer;
end;

procedure TForm1.Pogoda(Sender: TObject);
begin

{Вызвать процедуру
Pogoda(NIL);}
{Скачиваем XML}
GetDir(0,s);
memo2.Text:=Utf8ToAnsi(IdHTTP1.Get('http://xml.weather.co.ua/1.2/forecast/19?dayf=5&userid=yoursite_com'));
Memo2.Text:=Memo1.Text + Memo2.Text;
Memo2.Text:=Replace(Memo2.Text,'<?xml version="1.0" encoding="UTF-8"?>','');
Memo2.Lines.SaveToFile(s+'\1.xml');
{открываем XML}
XMLDocument1.FileName:='1.xml';
XMLDocument1.Active := true;
Memo4.Text:=XMLDocument1.xml.Text;
Label1.CAPTION :='погода в ' + XMLDocument1.DocumentElement.ChildNodes['city'].ChildNodes['name'].Text + 'е';
Label2.CAPTION := XMLDocument1.DocumentElement.ChildNodes['current'].ChildNodes['t'].Text+' °С';
Label3.CAPTION := XMLDocument1.DocumentElement.ChildNodes['forecast'].ChildNodes['day'].ChildNodes['cloud'].Text+' °С';



XMLDocument1.Active := false;


end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Pogoda(NIL);
end;

end.
Сам XML
http://xml.weather.co.ua/1.2/forecast/19?d...id=yoursite_com
 

Вложения