Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.10.29;
Скачать: [xml.tar.bz2];

Вниз

Как применить 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.042 c
15-1160100952
Slider007
2006-10-06 06:15
2006.10.29
С днем рождения ! 6 октября


2-1160997598
Volodya_
2006-10-16 15:19
2006.10.29
TImage


2-1160550730
evgenij_
2006-10-11 11:12
2006.10.29
Чтение/запись


15-1160535420
SerJaNT
2006-10-11 06:57
2006.10.29
Настройка aDSL-модема "aDSL-200"


2-1161024454
g-guest
2006-10-16 22:47
2006.10.29
Очередь сообщений





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский