Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.29;
Скачать: CL | DM;

Вниз

Как применить XML в работе приложения   Найти похожие ветки 

 
Виталий Гаврилов ©   (2006-10-04 18:44) [0]

Я сознаюсь я впервые сталкиваюсь с применением XML в работе приложения, нов кратце объясню что хочу: Смысл загрузить и сохранить на диске в корне проги XML файл из инета (список) и при нажатии клавиши отразить этот список в отдельном окне (оффлайн). Помогите , в котором направлении двигатся. Спасибо!


 
ProgRAMmer Dimonych   (2006-10-04 19:01) [1]

В чём конкретно проблема?
В чтении с диска, получении ветвей?
Что надо использовать?


 
Ketmar ©   (2006-10-04 19:01) [2]

наверное, в изучении того, что же есть этот самый XML?


 
Виталий Гаврилов ©   (2006-10-04 19:51) [3]

Какой компанент удобнее использовать для:
- загрузить с инета и сохранить загруженное в корне
- как считать (в кокой форме отразить в окне
а вообщем получить приложение типа Delfi Direct


 
ProgRAMmer Dimonych   (2006-10-04 19:54) [4]

Сокеты, сокеты и сокеты. Раздел "Сеть" здесь же.

Насчёт формы отображения - это зависит от фантазии.
Я не так давно, отвечая на один из вопросов накатал небольшую прогу для чтения веток XML в дерево TTreeView. Если надо - могу скинуть.


 
Виталий Гаврилов ©   (2006-10-04 19:57) [5]

Интересно если можно на мыло :)


 
ProgRAMmer Dimonych   (2006-10-04 20:01) [6]

Облом небольшой. Уже сколько раз натыкался на подобные просьбы и обещал сам себе решить эту проблему. Короче, у меня после переустановки винды не работает ни одна почтовая программа (msoe.dll им не хватает!). Могу закинуть на webfile.ru, например. Rar-архивом. Или ещё куда, но только http.


 
Виталий Гаврилов ©   (2006-10-04 20:12) [7]

Отлично :)


 
ProgRAMmer Dimonych   (2006-10-04 20:23) [8]

Отлично - значит сбрасывать или нет?


 
Виталий Гаврилов ©   (2006-10-04 20:37) [9]

Конечно! :)


 
ProgRAMmer Dimonych   (2006-10-04 20:43) [10]

http://www.webfile.ru/1136673


 
Виталий Гаврилов ©   (2006-10-04 21:00) [11]

Спасибо!
Но у меня Дельфи 5 и выдает ошибку чтения loadXML.Caption:invalid property value. Не можете ли сказать в чем проблема!?
И кстати не выполняете ли Вы работу на заказ?


 
Виталий Гаврилов ©   (2006-10-04 22:37) [12]

Какая библиотека используюется при разработке данных приложений (приложений работающих с XML)


 
ProgRAMmer Dimonych   (2006-10-04 22:42) [13]

На заказ не выполняю (времени в 10-м классе не хватает). А что за LoadXML? Я вроде бы на стандартных TMemoryStream и TTreeView делал, если мне память не изменяет. Или это не по моей программе?


 
Виталий Гаврилов ©   (2006-10-04 23:02) [14]

loadXML.Caption:invalid property value

Это выдает сразу, я даже не могу увидеть форму проги. Скажи а в каком Дельфи делал, у меня 5. Может из-за версии дельфи?


 
ProgRAMmer Dimonych   (2006-10-04 23:53) [15]

У меня - седьмая. Предлагаю попробовать создать новый проект, сохранить и заменить в нём хотя бы pas-файл, короче поэкспериментировать.
Когда-то стояла пятая, потом за нехваткой места на жёстком диске удалил.


 
Виталий Гаврилов ©   (2006-10-05 12:43) [16]

У меня данное действо как доп. приложение к основной большой программе и возможности перенести все с дельфи 5 на дельфи 7 просто нет. Может есть у кого готовые наработки. Как отразить XML (где забит список организаций с адресами) в Memo или в другом элементе. Ценнен любой совет.


 
Виталий Гаврилов ©   (2006-10-05 15:19) [17]

А возможно ли загрузить XML в Fast Reports?


 
Reindeer Moss Eater ©   (2006-10-05 15:28) [18]

А возможно ли загрузить XML в Fast Reports?

<Цитата>

А возможно ли посмотреть список xml классов, доступных в FR и попробовать сделать вывод самостоятельно?


 
_RusLAN ©   (2006-10-05 16:00) [19]

> Как отразить XML (где забит список организаций с адресами)
> в Memo или в другом элементе. Ценнен любой совет.

предлагаю отображать в TWebBrowser. Внешний вид придавать с помощью XSLT.


 
Виталий Гаврилов ©   (2006-10-05 18:38) [20]


> XSLT

Что это библиотека Дельфи или компанент, работает ли он в Дельфи 5?


 
_RusLAN ©   (2006-10-05 19:54) [21]

> Что это библиотека Дельфи или компанент, работает ли он
> в Дельфи 5?

XML + XSLT(XSL) = HTML

XSL  это что-то типа набора правил которые указывают как отображать XML

зайдите на http://xml.nsu.ru/
и прочитайте там про XML и XSL
http://xml.nsu.ru/xml/xml_home.xml
и
http://xml.nsu.ru/xsl/xsl_home.xml
соответственно


 
Виталий Гаврилов ©   (2006-10-06 18:42) [22]

Не ужели нет по проще ссылки, ну что никто не делал подобное!? :)


 
Ketmar ©   (2006-10-06 18:46) [23]

блин, DOM-парзеров в сети -- как собак нерезаных. да и в самой системе идёт, от m$.

перефразирую: сколько заплатят?


 
_RusLAN ©   (2006-10-06 19:40) [24]

> [22] Виталий Гаврилов ©   (06.10.06 18:42)

Что вам не понятно?
1. Вам надо скачать сначала файл из Интернета
Это обычная задача. Множество примеров вы сможете найти в том же Интернете.
2. Отобразить его:
вариант 1. можно отображать самому. Распарсить с использованием какого-нибуть готового парсера и накодить отображение полученой информации (ну там ввиде дерева, или списка или чего нибуть еще ...)
Вариант 2. спихнуть всю эту работу на Веб-браузер. надо только написать XSL-файл, который будет указывать браузеру как отображать ваш XML-файл. Как это сделать описано в ссылках в моем предыдущем посте (это ИМХО самое доступное и простое описание). Также при использованиии второго варианта  можна будет заставить браузер самому загрузить XML-файл  из Интеренета. Можно использовать внешний браузер, а можно встроить его в свое приложение(компоненты TWebBrowser или TEmbeddedWB)


 
Виталий Гаврилов ©   (2006-10-08 15:26) [25]

ищу кто сделает, пишите на мыло (сколько, нужно срочно)


 
Ketmar ©   (2006-10-08 23:51) [26]

>[25] Виталий Гаврилов(c) 8-Oct-2006, 15:26
>ищу кто сделает, пишите на мыло (сколько, нужно срочно)
благородный дон обалдел. дону надо -- дон пишет. на мыло тем, кому хочет предложить.

зыж мне можно не писать -- денег не хватит.


 
ProgRAMmer Dimonych ©   (2006-10-08 23:58) [27]

Это не помогло? См. [10]

OD:TOpenDialog;

procedure TForm1.LoadXMLClick(Sender: TObject);
var
Tmp:TStringList;
i,L:Integer;
CurrLine:ANSIString;
CurrNode:TTreeNode;
begin
if not(OD.Execute) then Exit;
Tmp:=TStringList.Create;
Tmp.LoadFromFile(OD.Files[0]);
CurrNode:=nil;
for i:=0 to Tmp.Count-1 do
begin
 CurrLine:=ClearText(Tmp[i]); L:=Length(CurrLine);
 if L<>0 then
  if not((CurrLine[1]<>"<") or (Copy(CurrLine,1,2)="<?")) then
  begin
   if Copy(CurrLine,1,2)="</" then
   begin
    if CurrNode<>nil then CurrNode:=CurrNode.Parent
   end
   else
    if Copy(CurrLine,L-1,2)="/>" then
     TV.Items.AddChild(CurrNode,Copy(CurrLine,2,L-3))
    else
     if Copy(CurrLine,L,1)=">" then
      CurrNode:=TV.Items.AddChild(CurrNode,Copy(CurrLine,2,L-2));
  end;
end;
CurrNode.Free;
Tmp.Free;
end;

function TForm1.ClearText(Text:ANSIString):ANSIString;
begin
Result:=Text;
if Length(Result)=0 then Exit;
while Ord(Result[1])<=Ord(" ") do
 Delete(Result,1,1);
end;

Это по поводу загрузки дерева. Можно чуток подкорректировать под конкретные нужды (небиологические :)). Сеть - сокеты, сокеты и сокеты. А деньги - они на раскрутку софтины могут понадобиться...


 
Виталий Гаврилов ©   (2006-10-11 11:23) [28]

Использовал в Д5 стандарный парсер MSXML, но проблема в том, что отображаемтся в мемо потраха XML а не нормальный текст. Теперь по каким принципам преобразовать в нормальный (читабельный) вид :(


 
_RusLAN ©   (2006-10-11 15:23) [29]

> [28] Виталий Гаврилов ©   (11.10.06 11:23)
> Использовал в Д5 стандарный парсер MSXML, но проблема в
> том, что отображаемтся в мемо потраха XML а не нормальный
> текст. Теперь по каким принципам преобразовать в нормальный
> (читабельный) вид :(


Не правильно, значит, использовали.
Покажите пример вашего XML, как использовали и что получилось.


 
Виталий Гаврилов ©   (2006-10-11 17:12) [30]

procedure TForm1.FormCreate(Sender: TObject);
var coDoc: CoDOMDocument;
var Doc: IXMLDOMDocument;
begin
       doc:= codoc.create;
       doc.load("data.xml");
       memo1.text:= doc.xml;
end;


 
_RusLAN ©   (2006-10-11 18:20) [31]

> [30] Виталий Гаврилов ©   (11.10.06 17:12)

одной строчки кода memo1.text:= doc.xml; маловато будет, чтобы распарсить документ :)

разберитесь как работать с XML парсерами:
-как получить список узлов с заданым именем
-как получить доступ к конкретному узлу
-как получить список подузлов
-как получить значение узла
- и т.п.

Для нетребовательных задач я обычно использую парсер SimpleXML, он бесплатный, с исходным кодом и не зависит от внешних компонентов.
Может вам с ним проще будет разобраться чем с майкрософтским.


 
Виталий Гаврилов ©   (2006-10-13 14:33) [32]

Решил парсеры не использовать :( просто отражать в браузере



Страницы: 1 вся ветка

Текущий архив: 2006.10.29;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.029 c
15-1160203276
Gydvin
2006-10-07 10:41
2006.10.29
Хочу звуки органа


2-1160668745
Ezorcist
2006-10-12 19:59
2006.10.29
Как закрасить форму картинкой в TBitmap?


3-1157027805
Orxan
2006-08-31 16:36
2006.10.29
tnsnames.ora


15-1159614427
Сатир
2006-09-30 15:07
2006.10.29
Помогите заполнить анкету


3-1157012836
SergP.
2006-08-31 12:27
2006.10.29
Не получается выполнить процедуру.