![]() |
|
Модераторы: bsa |
![]()
|
|
| Goodilla |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 10.10.2007 Репутация: 1 Всего: 1 |
bsa, да парсер, только без применения библиотек.
Результат, на данном этапе готовности программы следующий: transport name="train" cost="100" Some text message ransport |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Goodilla, ну и что тебе даст этот результат? Думаю, дальше ты упрешься и все.
Думаю, тебе стоит хорошенько обдумать, как вообще парсить. А еще лучше, посмотреть, как это делают другие. |
|||
|
||||
| Goodilla |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 10.10.2007 Репутация: 1 Всего: 1 |
Логично, а где? Кстати, Что лучше ДОМ - парсинг или САХ парсинг?
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Goodilla, набери в гугле tinyxml, expat, libxml, qt...
|
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Если размер обрабатываемого файла относительно небольшой - то DOM, если же очень большой (мегабайты и более) - SAX |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Я так понял, критерий другой: http://developerlife.com/tutorials/?p=28 |
|||
|
||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Я так понял, что по поводу предпочтительности использования SAX там написан полный бред - все, что там описано гораздо проще реализуется на DOM. ЕДИНСТВЕННОЕ преимущество SAX -это то, что он не хранит все дерево xml документа в памяти. Что касается возможности построения своих собственных моделей хранения данных на SAX (о чем было сказано по ссылке), то это притянуто за уши - и SAX и DOM повторяют модель xml языка (дерево), только DOM строит ее явно в виде структуры данных, а SAX неявно в виде последовательности вызовов эвентов. Обход дерева после DOM даст тот же самый эффект, что и SAX парсер. Сериализация любых структур данных может быть с легкостью написана и на DOM и на SAX. DOM даст меньший и более простой код за счет большего объема памяти и проигрыша в скорости, SAX наоборот - меньше памяти и больше скорости за счет большего объема более сложного кода. |
||||
|
|||||
| Goodilla |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 10.10.2007 Репутация: 1 Всего: 1 |
Спасиб ребят, вопрос закрыт. Помощь получил, ошибки осознал. Конечно помощь не том размере, что я хотел, но всё же бооольшое спасибо! Сейчас буду переделывать программу третий раз.
|
|||
|
||||
| Goodilla |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 10.10.2007 Репутация: 1 Всего: 1 |
Требуется ещё помощь.
Не могу разобраться в синтаксисе написания следующего: basic_istream& get (char_type* s, streamsize n, char_type delim ); Мне требуется читать файл по символу, до определённого символа. char_type delim - что писать здесь, а точнее как, если символ прерывающий чтение есть '>' streamsize n - длина чего? char_type* s - это переменная строки или ??? Помогите, пожалуйста. Заранее спасибо! |
|||
|
||||
| anatox91 |
|
|||
![]() программист-самоучка ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 12.1.2008 Где: ++Украина.Крым++ Репутация: 1 Всего: 13 |
по-русски объяснил в личке Это сообщение отредактировал(а) anatox91 - 2.6.2008, 20:41 -------------------- The code is the design © Sony VAIO VGN-FW480J ![]() |
|||
|
||||
| Goodilla |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 10.10.2007 Репутация: 1 Всего: 1 |
Не знаю что делать, всё перепробовал. Не переходит на следующий символ в строке, хоть убей. Что я не правильно сделал, не пойму.
Как мне сделать, какой код с применением streambuf::snextc будет валидным, чтобы результат был такой: Вначале: <TITLE>Hello world!</TITLE> После обработки: TITLE Hello world! Я в отчаине, не знаю что применить. |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Как-то так:
|
|||
|
||||
| Goodilla |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 10.10.2007 Репутация: 1 Всего: 1 |
Выдаёт ошибку после прохождения первого цикла:
if (pos != std::string::npos) { - вот тут
При чтении любого хмл файла выдаёт ошибку на первом блоке if. Результат всегда: error Возможно, он по какой то причине не может выполнить эту команду: std::string::size_type pos = line.find('<'); и найти символ "<". Что надо подкорректировать? Это сообщение отредактировал(а) Goodilla - 4.6.2008, 20:45 |
||||
|
|||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Он выдавал ошибку не на первом блоке, а на третьем! Учись отлаживаться.
|
|||
|
||||
| Goodilla |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 10.10.2007 Репутация: 1 Всего: 1 |
Выдавал то да, а вот условие было на первом if- или я опять не прав. Да, я ещё только учусь. Спасиб!
Но проблемка осталась, выдаёт ошибку: Key not found на такой файл: <Author>Gambardella, Matthew</Author> <Title>XML Developer's Guide</Title> <Genre>Computer</Genre> <Price>44.95</Price> <Publish_date>2000-10-01</Publish_date> <Description>An in-depth look at creating applications with XML.</Description> Не найти символ "<" Это сообщение отредактировал(а) Goodilla - 4.6.2008, 21:21 |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |