Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.07.2013, 21:16
Аватар для Algplux
Algplux Algplux вне форума
Прохожий
 
Регистрация: 03.11.2012
Адрес: Березники, Пермский край
Сообщения: 20
Версия Delphi: 7
Репутация: 10
По умолчанию Парсинг xml

Всем привет. Ребят помогите пожалуйста, не могу получить данные из 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.
Изображения
Тип файла: jpg Error.jpg (36.5 Кбайт, 10 просмотров)
Ответить с цитированием
  #2  
Старый 24.07.2013, 06:20
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,036
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Попробуй так:
Код:
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  
Старый 24.07.2013, 09:53
Аватар для Algplux
Algplux Algplux вне форума
Прохожий
 
Регистрация: 03.11.2012
Адрес: Березники, Пермский край
Сообщения: 20
Версия Delphi: 7
Репутация: 10
По умолчанию

Спасибо большое, эта проблема решилась, но теперь он выводит пустую строку вместо содержимого узла, буду искать ошибку.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:25.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter