Forum Webscript.Ru

Программирование => Perl => Тема начата: flymio от 27 Ноября 2001, 11:27:56

Название: Как сделать то ?
Отправлено: flymio от 27 Ноября 2001, 11:27:56
Смысел в чём ? ...
Смысел в том, чтобы не используя готового модуля (XML)
Из следующей конструкции:


  mio
  21 nov, 13:34 [Wed];
  index.html



получить:
tree->{system}->{user}=mio;
tree->{system}->{date}=mio;
tree->{system}->content=  mio
  21 nov, 13:34 [Wed];
  index.html


И т.д, и т.п.
Кто нить хотя бы алгоритм нормальный может подсказать ? ... а то я уже ... просто жуть ... ну не хочет работать нормально, всё время глючит ...


http://www.flymio.com
Название: Как сделать то ?
Отправлено: NeoNox от 27 Ноября 2001, 11:55:58
Цитировать
Кто нить хотя бы алгоритм нормальный может подсказать ?

Алгоритм чего? Как вытащить значения из страницы. Тогда попробуй копать вот тут:
http://perl.artil.ru:8101/docs/lama/g7.shtml
Название: Как сделать то ?
Отправлено: flymio от 27 Ноября 2001, 20:52:37
не ... смысл не в том, чтобы со страницы вытащить  ...


это не страница ... это структура ... это что угодно ...
это абстрактный поток данных ... он даже не обязательно хранит даннные .... это что угодно ...


вот .... (((
Название: Как сделать то ?
Отправлено: NeoNox от 28 Ноября 2001, 13:07:15
Цитировать
это абстрактный поток данных ... он даже не обязательно хранит даннные .... это что угодно ...

Так "ЭТО" можно в $ @ запихнуть?
Название: мда...))))
Отправлено: flymio от 27 Декабря 2001, 19:16:34
еси бы надо было вытащить значение из таблицы ... я бы так не мучился ... смысел не вытащить из таблицы значений ... потому что таблицы могут иметь совершенно любые имена ... и теги человек сам пишет ...
а разбивать всё на объекты ...
Название: Эээ
Отправлено: Green Kakadu от 28 Декабря 2001, 01:21:06
XML::Parser
Например, результат обработки строки (метод parse):
Hello thereHowdydo

будет выглядеть так (судя по документации):

[foo, [{}, head, [{id => ``a\'\'}, 0, ``Hello \'\', em, [{}, 0, ``there\'\']], bar, [ {}, 0, ``Howdy\'\', ref, [{}]], 0, ``do\'\' ] ]

Один из авторов модуля - Larry Wall!  :super:

См. также:
HTML::Tree
HTML::TreeBuilder

может если и не подойдут эти, то мысли какие-нибудь интересные появятся :) например, я бы с интересом посмотрел, что получится/отыщется..
Т.е. поход на http://CPAN.org
Стоит покопать модули околоXML\'вской темы, наверняка что-то интересное есть. Кроме того, вроде бы есть на XML какие-то наработки по поводу описания данных, их хранения и языка запросов для их извлечения.
Название: ага)))
Отправлено: flymio от 28 Декабря 2001, 06:03:33
>Смысел в чём ? ...
>Смысел в том, чтобы не используя готового модуля (XML)
Вот вот ... а XML::Parser - сразу отбрасывается ...
будем думать, что он медленный)))
1) он не очень удобен
2) он возвращает данные не в том виде, к котором бы хотелось, а в нём сидеть копаться ... эээ ... не очень то хотелось ...

....
потому нужно написать скрипт, который бы производил быстрый парсинг и разбивку, его я почти доделал ... а вот наоборот пока думаю ... хотя ... создавать занова xml обычно нет нужды ... лишь изменить уже имеющийся ... вот над этим можно подумать ...
Название: а как наоборот?
Отправлено: Green Kakadu от 31 Декабря 2001, 03:37:14
Цитировать
нужно написать скрипт, который бы производил быстрый парсинг и разбивку, его я почти доделал ...

А можно глянуть?
Название: таинственное манит?
Отправлено: flymio от 03 Января 2002, 13:40:38
>а как наоборот?
наоборот - это из хеша стоить xml код ... вот)))
рабочий вариант в смысле кода пока не могу выложить ... много есть багов ...


если будут какие то идеи-мысли, пишите...

mio@rosclub.ru....


таинственное манит? - http://sunfaa.rosclub.ru
Название: а как
Отправлено: Green Kakadu от 03 Января 2002, 14:30:36
Цитировать
наоборот - это из хеша стоить xml код ... вот)))

а из какого хеша - просто хеша или хеша хешей?
Я имею ввиду, как вложения должны выглядеть?
Как (хотя бы в теории) это в хеше представляется:

mio
21 nov, 13:34 [Wed];
index.html
Название: хеша хешей)))
Отправлено: flymio от 05 Января 2002, 19:34:39
ессно хеша хешей...


$tree->{system}->{user}=\'mio\';
оно же ...
$tree->{system}->{user}->{content}=\'mio\';

.............
$tree->{system}->{date}=\'21 nov, 13:34 [Wed];\';
$tree->{system}->{path}=\'index.html\';
Название: а...
Отправлено: Green Kakadu от 05 Января 2002, 23:40:36
Цитировать
ессно хеша хешей...

Цитировать
$tree->{system}->{user}->{content}=\'mio\';

Цитировать
Вот вот ... а XML::Parser - сразу отбрасывается ...
будем думать, что он медленный)))


Это я к тому, что будет ли получившееся быстрее? По идее, получается, что кол-во вложений чуть ли не беспредельное, учитывая, что должно быть нечто универсальное.. получаем что XML::Parser может быть и не так уж медленен, к тому же сам XML::Parser - это лишь надстройка над более низкоуровневым модулем, написанном на C.

[foo, [{}, head, [{id => ``a\'\'}, 0, ``Hello \'\', em, [{}, 0, ``there\'\']], bar, [ {}, 0, ``Howdy\'\', ref, [{}]], 0, ``do\'\' ] ]
 
если присмотреться - вполне ничего, и его можно преобразовать к необходимому виду.

http://www.flymio.com/affina  - жалко что ничего не увидел, стало очень интересно, особенно после ведьмочки Фаа (http://sunfaa.rosclub.ru).
Название: ....
Отправлено: flymio от 06 Января 2002, 16:21:44
ну не ... вот как раз первое преобразование будет всё таки быстрее ...


а вот насчёт из хеша-хешей ... то Вы  скорее всего правы, хотя, можно самому на си написать  ... без некоторых дополнительных особенностей XML::Parser ...

А разбивка их XML в хеш хешей всё таки работает быстрее ... осталось чуть чуть доработать вложенности с CDATA ... и можно показывать ...

Насчёт афины - site engine - создание, связывание разделов, страниц ... перегенерирование после изменения ... свои сценарии для связывания, создания динамики ...


Сейчас обновляю ... а мой сайт кажись умер ... вернее точно умер ... после падения сервера ... буду восстанавливать ...
эх ... так вот всегда ... на самом интересном месте ... )))