Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка структуры данных - дерева 
:(
    Опции темы
kingu
Дата 22.12.2008, 03:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 8.7.2007

Репутация: нет
Всего: нет



Доброго времени суток

Использую DBIx::MyParsePP для синтаксического разбора SQL запроса (MySQL). Цель - модифицировать запросы.
Как результат - модуль выдает структуру в виде дерева:
- rule (узлы дерева): [ название, @дочерние элементы]
- token (листья дерева, конечные элементы): [название, значение]

Требуется делать поиск разного вида:  
- если rule1 является дочерним элементом rule2, то ...
- если у правила rule1 дочерними элементами есть token1, any-rule, token2, то ...
и т.п. В некоторой степени напоминает CSS.  
Сейчас все эта обработка реализованна в виде рекурсивного обхода всего дерева с анализом каждого элемента. Получается достаточно запутано. Хочется отделить условия поиска и обработчики от самого обхода дерева.
Может есть модуль, который умеет работать с tree-структурами и выполнять подобного рода поиск с вызовом обработчиков для найденных элементов? Сам искал, не нашел.

Если кто-то подскажет ключевые слова для поиска алгоритмов - тоже пригодится.

Спасибо.
PM MAIL   Вверх
KSURi
Дата 22.12.2008, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27





--------------------
Died at Life.pl line 21
PM Jabber   Вверх
dmitryk1
Дата 22.12.2008, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 10.6.2008
Где: Новосибирск

Репутация: 2
Всего: 2



Цитата(KSURi @ 22.12.2008,  10:51)
XPath.pm

Классно.

А как это прикрутить к работе с базой данных? С таблицей:

ID | ParentID | Name 

например.

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

судя по:
Код

  my $root = HTML::TreeBuilder->new;
  $root->parse_file("foo.html");1

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

Но в таком случае к работе с базой это не применимо :(

2kingu:

В оракле, в его sqlе есть специальные формы запросов, для таких поисков, типа найти чилдрена такой ветки с таким-то названием... или подобное. Возможно и в mysqle такое есть. я бы советовал порыть в направлении sql запроса, как самый быстрый и удобный вариант.


PM MAIL GTalk Jabber   Вверх
KSURi
Дата 22.12.2008, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



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


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
dmitryk1
Дата 22.12.2008, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 10.6.2008
Где: Новосибирск

Репутация: 2
Всего: 2



Цитата(KSURi @ 22.12.2008,  13:00)
dmitryk1 В первом посте такого условия не было, насколько я понял.

Мда... Действительно невнимательно прочитал видимо. Увидел то, что хотел smile В любом случае, подчерпнул массу полезной информации smile 
PM MAIL GTalk Jabber   Вверх
kingu
Дата 24.12.2008, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 8.7.2007

Репутация: нет
Всего: нет



KSURi, спасибо за Class::XPath, похоже на то что нужно.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0728 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.