![]() |
|
|
#1
|
||||
|
||||
|
Всем привет. Ребят помогите пожалуйста, не могу получить данные из xml, смотрел кучу примеров, не могу разобраться. Что не так?
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, xmldom, XMLIntf, StdCtrls, Menus, msxmldom, XMLDoc;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
XMLDocument1: TXMLDocument;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
SaveDialog1: TSaveDialog;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
xml: TXMLDocument;
i: Integer; dt: string;
begin
xml := TXMLDocument.Create(nil);
xml.LoadFromFile('http://rp5.ru/xml/1508/00000/ru');
xml.Active := True;
for i := 0 to xml.DocumentElement.ChildNodes.Count - 1 do
begin
dt := xml.DocumentElement.ChildNodes[i].ChildNodes['datetime'].Text;
Memo1.Lines.Add(dt);
end;
xml.Active := False;
end;
end. |
|
#2
|
|||
|
|||
|
Попробуй так:
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
xml: IXMLDocument;
i: Integer; dt: string;
begin
xml := TXMLDocument.Create(nil);
xml.LoadFromFile('http://rp5.ru/xml/1508/00000/ru');
xml.Active := True;
for i := 0 to xml.DocumentElement.ChildNodes.Count - 1 do
begin
dt := xml.DocumentElement.ChildNodes[i].ChildNodes['datetime'].Text;
Memo1.Lines.Add(dt);
end;
xml.Active := False;
xml := Nil;
end;Там проблема, когда TXMLDocument не лежит на форме. Почему-то компонент считает, что ссылок больше нет и тихо умирает... |
| Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Algplux (24.07.2013)
| ||
|
#3
|
||||
|
||||
|
Спасибо большое, эта проблема решилась, но теперь он выводит пустую строку вместо содержимого узла, буду искать ошибку.
|