Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Парсер на Си 
:(
    Опции темы
oleg200095
Дата 10.7.2012, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго времени суток.
Мне понадобилось написать парсер html/xml на чистом Си. Хотелось бы узнать, какие алгоритмы/теории нужно знать что бы эффективно выполнить эту работу? Заранее спасибо за ответ
PM MAIL   Вверх
boostcoder
Дата 10.7.2012, 22:49 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



flex/bison
PM WWW   Вверх
math64
Дата 11.7.2012, 08:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

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



Есть готовые парсеры xml на чистом C - поищи в инете.
Если писать самому - да, flex/bison, но писать полный парсер это работа не для новичка.
PM   Вверх
baldina
Дата 11.7.2012, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

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



Цитата(oleg200095 @  10.7.2012,  22:48 Найти цитируемый пост)
какие алгоритмы/теории нужно знать

синтаксический анализ
PM MAIL   Вверх
EvilsInterrupt
Дата 11.7.2012, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

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



oleg200095, Лучше воспользуйся готовыми решениями, а так есть книга Ахо про компиляторы. Но прежде чем хоть что-то вменяемое напишешь пройдет достаточно много времени, имеет ли смысл?
PM MAIL WWW ICQ Jabber   Вверх
xvr
Дата 11.7.2012, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Цитата(oleg200095 @  10.7.2012,  22:48 Найти цитируемый пост)
Хотелось бы узнать, какие алгоритмы/теории нужно знать что бы эффективно выполнить эту работу?

Вам шашечки, или ехать? Если второе, то возьмите libxml2 и не парьтесь
А если первое, то для xml теории синтаксического анализа будут чересчур - у него грамматика простая как сапог  smile 

PM MAIL   Вверх
oleg200095
Дата 11.7.2012, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Мне и шашечки и ехать, с одной стороны его нужно использовать в проекте, а с другой хотелось бы и научиться. 
PM MAIL   Вверх
baldina
Дата 11.7.2012, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

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



Цитата(xvr @  11.7.2012,  12:22 Найти цитируемый пост)
 для xml теории синтаксического анализа будут чересчур - у него грамматика простая как сапог

да, его описание всего-то 1000 с небольшим строк.

Добавлено через 3 минуты и 8 секунд
а bnf порядка 200 занимает, с пустыми строками.

Добавлено через 5 минут и 59 секунд
Цитата(oleg200095 @  11.7.2012,  14:38 Найти цитируемый пост)
 с одной стороны его нужно использовать в проекте, а с другой хотелось бы и научиться

разделите это на две задачи smile 
научиться цель благородная, но сильно затормозит Ваш проект. так что почитайте про лексический и синтаксический анализ вобщем, поймите как устроен построитель компиляторов типа flex/bison, а для проекта возьмите специализированную библиотеку

Это сообщение отредактировал(а) baldina - 11.7.2012, 17:40
PM MAIL   Вверх
xvr
Дата 11.7.2012, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Цитата(baldina @  11.7.2012,  17:39 Найти цитируемый пост)
да, его описание всего-то 1000 с небольшим строк.

Это не значит, что  и парсер на 1000 строк будет

Цитата(baldina @  11.7.2012,  17:39 Найти цитируемый пост)
а bnf порядка 200 занимает, с пустыми строками.

А не надо в одном bnf смешивать лексику и семантику.  Да и DTD ТС видимо не нужен (я так подозреваю)  smile 

Чистый bnf на семантику там будет строк на 20 максимум. И требование к совпадению открывающих и закрывающих тегов, а так же к уникальности атрибутов вообще в bnf не выражается  smile 


Цитата(baldina @  11.7.2012,  17:39 Найти цитируемый пост)
так что почитайте про лексический и синтаксический анализ вобщем, поймите как устроен построитель компиляторов типа flex/bison, а для проекта возьмите специализированную библиотеку

Это всегда полезно, но для парсинга XML это из пушки по воробьям (хотя flex можно задействовать)


Это сообщение отредактировал(а) xvr - 11.7.2012, 22:16
PM MAIL   Вверх
magesi
Дата 11.7.2012, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



oleg200095, да не надо всякие Бауэра и Замельзона или Рутисхаузера учить по разбору выражений, ты сразу генетические алгоритмы бери  smile а то всякой 50летней давности классики насоветуют, которая неспособна к самоанализу и измененеиям ( полный полиморфизм, включащий в себя другие морфичные структуры )  smile это для 1-ой части "для себя", которую тебе советуют, а для 2-ой, как сказали полно всего готового, то мне больше XmlLite 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




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


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

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