нужен
— платформонезависимый
— быстрый
— не глючный
XML парсер для с++
сейчас пользую xercesc DOM Parser,
несколько xml общим объемом около 100 Мб
парятся около 15 минут, это немного не устраивает,
хотелось бы раз в 10 побыстрей
Re: посоветуйте XML парсер
От:
Аноним
Дата:
14.12.04 20:59
Оценка:
Здравствуйте, pivoo, Вы писали:
P>нужен P>- платформонезависимый P>- быстрый P>- не глючный P>XML парсер для с++
P>сейчас пользую xercesc DOM Parser, P>несколько xml общим объемом около 100 Мб P>парятся около 15 минут, это немного не устраивает, P>хотелось бы раз в 10 побыстрей
DOM-парсеры строят объектную модель (=дерево) по ходу обработки XML — поэтому получается долго.
Есть SAX-парсеры — которые будут дергать твои callback'и. В некоторых задачах SAX-парсеры могут существенно повысить производительность по сравнению с DOM-парсерами — но это только если задача позволяет...
Здравствуйте, pivoo, Вы писали:
P>сейчас пользую xercesc DOM Parser, P>несколько xml общим объемом около 100 Мб P>парятся около 15 минут, это немного не устраивает,
Здравствуйте, _Winnie, Вы писали:
_W>Смысл использовать xml? Учитывая объемы, human-readability тебе не нужна. Так может, лучше использовать бинарный формат, чем мучать парсеры текста?
смысл использовать xml как раз и состоит в том что
human-readability мне нужна
Здравствуйте, pivoo, Вы писали:
P>Здравствуйте, _Winnie, Вы писали:
_W>>Смысл использовать xml? Учитывая объемы, human-readability тебе не нужна. Так может, лучше использовать бинарный формат, чем мучать парсеры текста?
P>смысл использовать xml как раз и состоит в том что P>human-readability мне нужна
бери xerces-c и не мучайся
Здравствуйте, DangerDen, Вы писали:
DD>Здравствуйте, pivoo, Вы писали:
P>>Здравствуйте, _Winnie, Вы писали:
_W>>>Смысл использовать xml? Учитывая объемы, human-readability тебе не нужна. Так может, лучше использовать бинарный формат, чем мучать парсеры текста?
P>>смысл использовать xml как раз и состоит в том что P>>human-readability мне нужна DD>бери xerces-c и не мучайся
им и пользуюсь .. и мучаюсь
читай пост
Здравствуйте, pivoo, Вы писали:
P>Здравствуйте, DangerDen, Вы писали: DD>>Здравствуйте, pivoo, Вы писали: P>>>Здравствуйте, _Winnie, Вы писали: _W>>>>Смысл использовать xml? Учитывая объемы, human-readability тебе не нужна. Так может, лучше использовать бинарный формат, чем мучать парсеры текста?
Извиняюсь за неверное предположение, может пройдут следующие два способа:
1) Используем бинарный формат, редактируем при помощи специального редактора. (пример — реестр Windows)
2) Используем таки текстовый xml, но в production-билде используем файл, конвертированный в бинарник. (пример — любой компилятор, например С++)
Доклад Руслана Абдикеева на КРИ 2003 — при разработке храним в виде удобном для человека, в production релизе — используем наиболее удобный для платформы формат.
Или data flow в твоей системе таков, что это принципиально невозможно? Нужно таки лечить болезнь, а не ее симптомы
Правильно работающая программа — просто частный случай Undefined Behavior
я согласен что это предложение имеет право на жизнь, но
задача поставлена именно таким образом как я описал,
поэтому и решения необходимо искать в соответсвие с
этой задачей.
Надо найти быстрый парсер xml.
Здравствуйте, pivoo, Вы писали:
P>- платформонезависимый P>- быстрый P>- не глючный P>XML парсер для с++ P>хотелось бы раз в 10 побыстрей
Вы так и не уточнили, вам нужен DOM или SAX парсер?
Я где-то видел не так давно результаты тестирования SAX парсеров, самым быстрым был expat, после него — libxml2.
Здравствуйте, butcher, Вы писали: B>Вы так и не уточнили, вам нужен DOM или SAX парсер? B>Я где-то видел не так давно результаты тестирования SAX парсеров, самым быстрым был expat, после него — libxml2.
спасибо за ссылки,
а насчет DOM или SAX — мне не важно,
я пока с SAX не работал и не представляю чем
он отличается. Главное чтобы быстро.
Я смотрю тут многие советуют xercesc,
я его тоже использую, но код его использования
"достался в наследство" и я думаю что не исключена такая
возможность что написано все не идеально ( для быстрого
парсинга больших объемов данных ).
Может кто-то даст ссылки на примеры применения?
Официальная документация, как мне показалось,
не изобилирует ими. Мне сложно с ней разобраться.
Или, если удобнее, киньте в мыло, адрес в профайле.
Здравствуйте, pivoo, Вы писали:
P>нужен P>- платформонезависимый P>- быстрый P>- не глючный P>XML парсер для с++
P>сейчас пользую xercesc DOM Parser, P>несколько xml общим объемом около 100 Мб P>парятся около 15 минут, это немного не устраивает, P>хотелось бы раз в 10 побыстрей
нормальный хмл парсер есть в Qt. В .NET тоже вполне удобоваримый
Hello, !
You wrote on Fri, 17 Dec 2004 06:09:57 GMT:
> Здравствуйте, pivoo, Вы писали:
P>> нужен — платформонезависимый — быстрый — не глючный P>> XML парсер для с++
Xercesc или libXml
P>> сейчас пользую xercesc DOM Parser, несколько xml общим объемом около P>> 100 Мб парятся около 15 минут, это немного не устраивает, хотелось P>> бы раз в 10 побыстрей
Разгребать 100 Мб xml в DOM это само по себе плохая идея . Возможно Вам стоит обратить внимание на SAX парсер.
з.ы. У нас на конторе мы применяли Xercesc и libXml. В принципе разница практически незаметна. libXml оказался немного быстрее. Однако у нас были определенные нюансы в поведении обоих
Здравствуйте, alteorn, Вы писали:
A>Hello, ! A>You wrote on Fri, 17 Dec 2004 06:09:57 GMT:
>> Здравствуйте, pivoo, Вы писали:
P>>> нужен — платформонезависимый — быстрый — не глючный P>>> XML парсер для с++
A>Xercesc или libXml
P>>> сейчас пользую xercesc DOM Parser, несколько xml общим объемом около P>>> 100 Мб парятся около 15 минут, это немного не устраивает, хотелось P>>> бы раз в 10 побыстрей
A> Разгребать 100 Мб xml в DOM это само по себе плохая идея . Возможно Вам стоит обратить внимание на SAX парсер.
A>з.ы. У нас на конторе мы применяли Xercesc и libXml. В принципе разница практически незаметна. libXml оказался немного быстрее. Однако у нас были определенные нюансы в поведении обоих
A>With best regards, Alexander S.Tereshchenko.
а можно небольшой пример использования SAX в xercesc?
что-то разбираюсь с документацией, но ее много и все путано
(по крайней мере для меня)
Hello, pivoo!
You wrote on Fri, 17 Dec 2004 08:59:06 GMT:
P>>>> сейчас пользую xercesc DOM Parser, несколько xml общим объемом P>>>> около 100 Мб парятся около 15 минут, это немного не устраивает, P>>>> хотелось бы раз в 10 побыстрей
A>> Разгребать 100 Мб xml в DOM это само по себе плохая идея . A>> Возможно Вам стоит обратить внимание на SAX парсер.
A>> з.ы. У нас на конторе мы применяли Xercesc и libXml. В принципе A>> разница практически незаметна. libXml оказался немного быстрее. A>> Однако у нас были определенные нюансы в поведении обоих
p> а можно небольшой пример использования SAX в xercesc? p> что-то разбираюсь с документацией, но ее много и все путано (по p> крайней мере для меня)
Не хотелось бы постить сюда примеры, которые есть в библиотеке. (Я бы написал такие же) Посмотрите, например, в ../samples/SAXPrint или ../samples/SAXCount.
Здравствуйте, alteorn, Вы писали:
A> Не хотелось бы постить сюда примеры, которые есть в библиотеке. (Я бы написал такие же) Посмотрите, например, в ../samples/SAXPrint или ../samples/SAXCount.
A>With best regards, Alexander S.Tereshchenko.
Да, спасибо, просто в той версии xercesc что стояла у нас не было примеров, сейчас уже нашел
Здравствуйте, pivoo, Вы писали:
P>Здравствуйте, alteorn, Вы писали:
A>> Не хотелось бы постить сюда примеры, которые есть в библиотеке. (Я бы написал такие же) Посмотрите, например, в ../samples/SAXPrint или ../samples/SAXCount.
A>>With best regards, Alexander S.Tereshchenko.
P>Да, спасибо, просто в той версии xercesc что стояла у нас не было примеров, сейчас уже нашел
Так я ж еще под анонимом говорил про SAXParser в Xerces'e и советовал
Здравствуйте, DangerDen, Вы писали:
DD>Здравствуйте, pivoo, Вы писали:
P>>Здравствуйте, alteorn, Вы писали:
A>>> Не хотелось бы постить сюда примеры, которые есть в библиотеке. (Я бы написал такие же) Посмотрите, например, в ../samples/SAXPrint или ../samples/SAXCount.
A>>>With best regards, Alexander S.Tereshchenko.
P>>Да, спасибо, просто в той версии xercesc что стояла у нас не было примеров, сейчас уже нашел
DD>Так я ж еще под анонимом говорил про SAXParser в Xerces'e и советовал
я поэтому и завел новую ветку