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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> XML сервер, XML вывод из консольной программы 
:(
    Опции темы
qpharm
Дата 25.1.2008, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Требуется, что С++ программа генерировала HTML (XML) файлы, чтобы ее вывод можно было просматривать любым браузером (html - сервер).
С помощью каких инструментов (библиотек) можно это сделать проще?

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


Эксперт
***


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

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



Цитата(qpharm @  25.1.2008,  10:20 Найти цитируемый пост)
С помощью каких инструментов (библиотек) можно это сделать проще?

ну формировать оформление тегами вполне просто можно формировать стандартными средствами. Всякими библиотеками есть необходимость пользоваться при чтении таких конструкций, а записать проблем особых нет.
Код

std::ostringstream s;
s << "<font>" << x << "</font>" ;

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


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



то-есть это CGI?
tinyxml - имхо самый простой вариант... а вообще любая библиотека позволяющая работать с DOM
PM MAIL Skype GTalk   Вверх
Любитель
Дата 26.1.2008, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



Цитата(qpharm @  25.1.2008,  11:20 Найти цитируемый пост)
html - сервер

Странное понятие... Может речь про реализацию HTTP-сервера?


--------------------
PM MAIL ICQ Skype   Вверх
jonie
Дата 26.1.2008, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата

а вообще любая библиотека позволяющая работать с DOM
SAX нынче не в моде видимо ....

если просто выводить то достаточно SAX парсеров, а то и просто вывода без всяких наворотов... надо точнее ставить задачи


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
chipset
Дата 26.1.2008, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

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



АФАИР, ТиниХМЛ плохо поддерживает ДОМ и запись вообше. Просто записать ХМЛ СТЛом гораздо проше велосипедом.


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Ulysses4j
Дата 26.1.2008, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 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
PM MAIL WWW   Вверх
Fazil6
Дата 26.1.2008, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Ulysses4j @  26.1.2008,  22:18 Найти цитируемый пост)
 Хорошая библиотека для работы с XML, как говорят, Apache Xerces

хорошая, бесплатная, качественная и т.д и т.п - libxml2

libxml
PM MAIL   Вверх
archimed7592
Дата 27.1.2008, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 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
PM Jabber   Вверх
qpharm
Дата 29.1.2008, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Ulysses4j @  26.1.2008,  23:18 Найти цитируемый пост)
В промышленных масштабах дле генерации любой разметки используются шаблонные движки (Velocity, FreeMarker, JSP, Smarty), но для С++ таковых я не знаю (и это, очевидно, потому что редко С++ применяется для решения таких задач в промышленных масштабах); однако, это не значит, что их нет вообще  — гугл в помощь. Руками проще — это да, особенно, если нужен только HTML (XHTML). Хорошая библиотека для работы с XML, как говорят, Apache Xerces.


Полезный ответ. Большое спасибо.

PM MAIL   Вверх
Fazil6
Дата 29.1.2008, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(archimed7592 @  26.1.2008,  23:30 Найти цитируемый пост)
Fazil6, ты имел дело и с Xerces и c libxml2? Передо мной сейчас дилема, что выбрать - если не сложно, можно в двух словах плюсы/минусы обоих?

точно не помню рассматривал ли я Xerces, но тему пробивал и варианты были. Я рассматривал несколько библиотек и какие именно точно не помню кроме микрософтовской, но выбрал libxml2 потому как мне она показалась наиболее простой и понятной в использовании имея все необходимые возможности, кросплатформенность и к тому же о ней хорошие отзывы. 
Правда когда передо мной вопрос стоял я не сильно шибко в самом XML разбирался и может быть я не совсем объективно оценивал, но ни разу не пожалел, что с ней связался. Хорошая дока, с примерами, сайт толковый - короче у меня никаких претензий. 
Сама либа на С.

Добавлено через 3 минуты и 44 секунды
из минусов могу предложить тока то, что оно работает исключительно с UTF-8 и как правило перед передачей парсеру и после получения от него нужно перекодировать, если скажем работаем с СР1251, но есть iconv и для меня лично это особым неудобством не является
PM MAIL   Вверх
archimed7592
Дата 29.1.2008, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


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

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



Цитата(Fazil6 @  29.1.2008,  12:30 Найти цитируемый пост)
из минусов могу предложить тока то, что оно работает исключительно с UTF-8 и как правило перед передачей парсеру и после получения от него нужно перекодировать, если скажем работаем с СР1251, но есть iconv и для меня лично это особым неудобством не является 

Да, да... Уже успел столкнуться с этим, правда, сквозь 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
PM Jabber   Вверх
Ulysses4j
Дата 29.1.2008, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 6.6.2007
Где: Ростов-на-Дону

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



Цитата(Fazil6 @  29.1.2008,  13:30 Найти цитируемый пост)
кросплатформенность

НУ, сегодня любая приличная C/C++-библиотека хорошо переносима на уровне исходников (надо только уметь собирать ее из этих исходников под разные платформы ;))

Цитата(Fazil6 @  29.1.2008,  13:30 Найти цитируемый пост)
Сама либа на С.

В отличие от 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
PM MAIL WWW   Вверх
Любитель
Дата 29.1.2008, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



Цитата(Ulysses4j @  29.1.2008,  13:59 Найти цитируемый пост)
Насколько я знаю, с Xerces ничего подобного нет.

В ксерцез нуль-строки в утф-16 (XMLCh*). Для парсера и райтера можно, конечо, задать энкодинг (для парсера обычно он берётся с документа). Всё-таки я бы предпочёл ОО-дизайн xerces. Да и поддержка последних спецификаций. Доки не идеальны, но есть неплохие экзамплы.

Добавлено через 29 секунд
ЗЫ С libxml толком не работал - только смотрел. Не пошло... smile


--------------------
PM MAIL ICQ Skype   Вверх
archimed7592
Дата 29.1.2008, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 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
PM Jabber   Вверх
Любитель
Дата 29.1.2008, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



А кака "дружба" тебе нужна? Чего-т я не понял smile


--------------------
PM MAIL ICQ Skype   Вверх
archimed7592
Дата 30.1.2008, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


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

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



Цитата(Любитель @  29.1.2008,  15:21 Найти цитируемый пост)
А кака "дружба" тебе нужна? Чего-т я не понял smile

А я пока сам не знаю smile. Просто в PHP я имел некоторые performance issues в связи с необходимостью постоянно перекодировать в UTF-8 и обратно. Вообще не понимаю, зачем нужен UTF-8, кроме как для окончательного представления текста и т.к. libxml2 не работает ни с чем, кроме как UTF-8, она мне видимо не подойдёт.
Сейчас меня вполне устраивает дружба 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
PM Jabber   Вверх
Любитель
Дата 30.1.2008, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



Цитата(archimed7592 @  30.1.2008,  15:08 Найти цитируемый пост)
там вроде как появился XPath и прочие вкусности

Да 4.4 в плане XML очень радует smile Ждём релиза...

Цитата(archimed7592 @  30.1.2008,  15:08 Найти цитируемый пост)
Просто в PHP я имел некоторые performance issues в связи с необходимостью постоянно перекодировать в UTF-8 и обратно.

XercesC выдаёт/получает строки как утф-16 (в C-style), без вариантов. Есть всякие XMLString::transcode + куча функций обработки (статик-методы класса XMLString). Кстати, XMLString - достаточно странная вещь. Класс, с онли статик-мемебрами (почему не неймспейс?) для обработки XMLCh*. Вот так.

QString ведь тоже внутренне на утф16 основан - я не понял, чем это плохо?


--------------------
PM MAIL ICQ Skype   Вверх
archimed7592
Дата 30.1.2008, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


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

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



Цитата(Любитель @  30.1.2008,  15:40 Найти цитируемый пост)
QString ведь тоже внутренне на утф16 основан - я не понял, чем это плохо? 

UTF-16 - это хорошо smile. UTF-32 конечно ещё лучше, но, если прикрыть глаза на всякую муть аля "в UTF-16 некоторые code points будут представляться несколькими символами", то золотой серидиной будет именно UTF-16.
Минусы UTF-8 я совсем недавно уже упоминал... самый главный: необходимость делать лишние действия, а если забудешь их сделать можно нарваться на весьма пренеприятные последствия. Да и зачем их делать, когда можно не делать smile.
Минус 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
PM Jabber   Вверх
jonie
Дата 30.1.2008, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



UTF16 и UCS-2 разные вещи


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
archimed7592
Дата 30.1.2008, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


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

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



Цитата(jonie @  30.1.2008,  17:58 Найти цитируемый пост)
UTF16 и UCS-2 разные вещи 

Кто-то где-то утверждал обратное? 0_о


--------------------
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
PM Jabber   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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