Форум: "Начинающим";
Текущий архив: 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.067 c