Чтение Xml

Тема в разделе "Pascal and Delphi", создана пользователем Gudzik11, 30 ноя 2011.

  1. Gudzik11

    Gudzik11 New Member

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

    Код (Delphi):
    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
     

    Вложения:

Загрузка...

Поделиться этой страницей