![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
qpharm |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 25.1.2008 Репутация: нет Всего: нет |
Требуется, что С++ программа генерировала HTML (XML) файлы, чтобы ее вывод можно было просматривать любым браузером (html - сервер).
С помощью каких инструментов (библиотек) можно это сделать проще? |
|||
|
||||
Fazil6 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
ну формировать оформление тегами вполне просто можно формировать стандартными средствами. Всякими библиотеками есть необходимость пользоваться при чтении таких конструкций, а записать проблем особых нет.
|
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
то-есть это CGI?
tinyxml - имхо самый простой вариант... а вообще любая библиотека позволяющая работать с DOM |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Странное понятие... Может речь про реализацию HTTP-сервера? |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
если просто выводить то достаточно SAX парсеров, а то и просто вывода без всяких наворотов... надо точнее ставить задачи -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
chipset |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
АФАИР, ТиниХМЛ плохо поддерживает ДОМ и запись вообше. Просто записать ХМЛ СТЛом гораздо проше велосипедом.
--------------------
|
|||
|
||||
Ulysses4j |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 6.6.2007 Где: Ростов-на-Дону Репутация: 4 Всего: 10 |
В промышленных масштабах дле генерации любой разметки используются шаблонные движки (Velocity, FreeMarker, JSP, Smarty), но для С++ таковых я не знаю (и это, очевидно, потому что редко С++ применяется для решения таких задач в промышленных масштабах); однако, это не значит, что их нет вообще — гугл в помощь. Руками проще — это да, особенно, если нужен только HTML (XHTML). Хорошая библиотека для работы с XML, как говорят, Apache Xerces.
Это сообщение отредактировал(а) Ulysses4j - 26.1.2008, 23:19 -------------------- Communication is critical to the job of a programmer. C. Jazdzewski. Fatherly Advice To New Programmers |
|||
|
||||
Fazil6 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
хорошая, бесплатная, качественная и т.д и т.п - libxml2 libxml |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Fazil6, ты имел дело и с Xerces и c libxml2? Передо мной сейчас дилема, что выбрать - если не сложно, можно в двух словах плюсы/минусы обоих?
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
qpharm |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 25.1.2008 Репутация: нет Всего: нет |
Полезный ответ. Большое спасибо. |
|||
|
||||
Fazil6 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
точно не помню рассматривал ли я Xerces, но тему пробивал и варианты были. Я рассматривал несколько библиотек и какие именно точно не помню кроме микрософтовской, но выбрал libxml2 потому как мне она показалась наиболее простой и понятной в использовании имея все необходимые возможности, кросплатформенность и к тому же о ней хорошие отзывы. Правда когда передо мной вопрос стоял я не сильно шибко в самом XML разбирался и может быть я не совсем объективно оценивал, но ни разу не пожалел, что с ней связался. Хорошая дока, с примерами, сайт толковый - короче у меня никаких претензий. Сама либа на С. Добавлено через 3 минуты и 44 секунды из минусов могу предложить тока то, что оно работает исключительно с UTF-8 и как правило перед передачей парсеру и после получения от него нужно перекодировать, если скажем работаем с СР1251, но есть iconv и для меня лично это особым неудобством не является |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Да, да... Уже успел столкнуться с этим, правда, сквозь PHP/DOM... Не очень приятная особенность на самом деле... -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
Ulysses4j |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 6.6.2007 Где: Ростов-на-Дону Репутация: 4 Всего: 10 |
НУ, сегодня любая приличная C/C++-библиотека хорошо переносима на уровне исходников (надо только уметь собирать ее из этих исходников под разные платформы ;)) В отличие от Xerces, которая С++: классы и виртуальные функции — все радости жизни. По поводу кодировок. Ограничения libxml проистекают из того, что распарсенные данные, в какой бы кодировке они ни были представлены изначально, кодируются во внутреннем предаставлении в UTF-8. Причины этого решения описаны на оф. сайте и мягко говоря не кажутся внятными, лично у меня такое ощущение, что товарищи решили облегчить себе жизнь при реализации библиотеки. Насколько я знаю, с Xerces ничего подобного нет. Хотя я предпочитаю использовать в xml UTF-8 =) но не всегда же приходится парсить свои документы... Это сообщение отредактировал(а) Ulysses4j - 29.1.2008, 14:00 -------------------- Communication is critical to the job of a programmer. C. Jazdzewski. Fatherly Advice To New Programmers |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
В ксерцез нуль-строки в утф-16 (XMLCh*). Для парсера и райтера можно, конечо, задать энкодинг (для парсера обычно он берётся с документа). Всё-таки я бы предпочёл ОО-дизайн xerces. Да и поддержка последних спецификаций. Доки не идеальны, но есть неплохие экзамплы. Добавлено через 29 секунд ЗЫ С libxml толком не работал - только смотрел. Не пошло... ![]() |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Xerces дружит с ICU?
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
А кака "дружба" тебе нужна? Чего-т я не понял
![]() |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
А я пока сам не знаю ![]() Сейчас меня вполне устраивает дружба QDomXxx и QString, но слишком уж ограниченный DOM у Qt'шников. Хотя... смотрел 4.4-tp1 - там вроде как появился XPath и прочие вкусности, но, это надо проверить более детально. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Да 4.4 в плане XML очень радует ![]()
XercesC выдаёт/получает строки как утф-16 (в C-style), без вариантов. Есть всякие XMLString::transcode + куча функций обработки (статик-методы класса XMLString). Кстати, XMLString - достаточно странная вещь. Класс, с онли статик-мемебрами (почему не неймспейс?) для обработки XMLCh*. Вот так. QString ведь тоже внутренне на утф16 основан - я не понял, чем это плохо? |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
UTF-16 - это хорошо ![]() Минусы UTF-8 я совсем недавно уже упоминал... самый главный: необходимость делать лишние действия, а если забудешь их сделать можно нарваться на весьма пренеприятные последствия. Да и зачем их делать, когда можно не делать ![]() Минус UTF-32 - часто неоправданный перерасход памяти. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
UTF16 и UCS-2 разные вещи
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |