![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
kingu |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 8.7.2007 Репутация: нет Всего: нет |
Доброго времени суток
Использую DBIx::MyParsePP для синтаксического разбора SQL запроса (MySQL). Цель - модифицировать запросы. Как результат - модуль выдает структуру в виде дерева: - rule (узлы дерева): [ название, @дочерние элементы] - token (листья дерева, конечные элементы): [название, значение] Требуется делать поиск разного вида: - если rule1 является дочерним элементом rule2, то ... - если у правила rule1 дочерними элементами есть token1, any-rule, token2, то ... и т.п. В некоторой степени напоминает CSS. Сейчас все эта обработка реализованна в виде рекурсивного обхода всего дерева с анализом каждого элемента. Получается достаточно запутано. Хочется отделить условия поиска и обработчики от самого обхода дерева. Может есть модуль, который умеет работать с tree-структурами и выполнять подобного рода поиск с вызовом обработчиков для найденных элементов? Сам искал, не нашел. Если кто-то подскажет ключевые слова для поиска алгоритмов - тоже пригодится. Спасибо. |
|||
|
||||
KSURi |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
-------------------- Died at Life.pl line 21 |
|||
|
||||
dmitryk1 |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 10.6.2008 Где: Новосибирск Репутация: 2 Всего: 2 |
Классно. А как это прикрутить к работе с базой данных? С таблицей: ID | ParentID | Name например. А этот модуль, как я понял, позволяет использовать XPath только с загруженным хтмлем? судя по:
Или подразумевается любая структура данных загруженная в память? Но в таком случае к работе с базой это не применимо :( 2kingu: В оракле, в его sqlе есть специальные формы запросов, для таких поисков, типа найти чилдрена такой ветки с таким-то названием... или подобное. Возможно и в mysqle такое есть. я бы советовал порыть в направлении sql запроса, как самый быстрый и удобный вариант. |
||||
|
|||||
KSURi |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
dmitryk1, а зачем прикручивать это к базе? В первом посте такого условия не было, насколько я понял.
Применять данный модуль можно к любой структуре данных. -------------------- Died at Life.pl line 21 |
|||
|
||||
dmitryk1 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 10.6.2008 Где: Новосибирск Репутация: 2 Всего: 2 |
Мда... Действительно невнимательно прочитал видимо. Увидел то, что хотел ![]() ![]() |
|||
|
||||
kingu |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 8.7.2007 Репутация: нет Всего: нет |
KSURi, спасибо за Class::XPath, похоже на то что нужно.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |