Форум программистов, компьютерный форум CyberForum.ru

Проверка валидности в libxml++ - C++

Восстановить пароль Регистрация
 
sportsoft
0 / 0 / 0
Регистрация: 25.06.2013
Сообщений: 12
17.08.2013, 22:59     Проверка валидности в libxml++ #1
Подскажите, как с помощью этой библиотеки можно проверить валидность документа на соответствие XML. Вариант через исключение при создании не годится, т.к. в этом случае libxml++ выводит в поток описание ошибки без моего ведома...
Документацию читал, но разобраться не смог...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.08.2013, 22:59     Проверка валидности в libxml++
Посмотрите здесь:

C++ Проверка!
Проверка на числа C++
проверка C++
Проверка с if C++
C++ Проверка if
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
17.08.2013, 23:21     Проверка валидности в libxml++ #2
c либой дело не имел и возможно там есть более правильные методы обработки ошибок.
залез в доку. там в парсере такие виртуальные функции:
C++
1
2
3
4
5
virtual void    on_validity_error (const Glib::ustring& message)
virtual void    on_validity_warning (const Glib::ustring& message)
virtual void    handleException (const exception& e)
virtual void    check_for_exception ()
virtual void    check_for_validity_messages ()
раз так, значит их можно переопределить так, чтобы они не писали ничего в поток.
sportsoft
0 / 0 / 0
Регистрация: 25.06.2013
Сообщений: 12
18.08.2013, 13:51  [ТС]     Проверка валидности в libxml++ #3
Не работал никогда с виртуальными методами, спасибо. Пробовал вот так - не помогло.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class ttt: public xmlpp::DomParser
{
    protected:
    virtual void    on_validity_error (const Glib::ustring& message) { }
    virtual void    on_validity_warning (const Glib::ustring& message) { }
    virtual void    handleException (const exception& e) { }
    virtual void    check_for_exception () { }
    virtual void    check_for_validity_messages () { }
};
 
...
try
{
        ttt Parser;
        istringstream test( "<yyy>/yyy>" );
 
        Parser.parse_stream( test );
}
catch(xmlpp::exception uu)
{
    cout << "Bad parsing: " << uu.what() << endl;
}
Еще нашел метод:
set_throw_messages (bool val=true)
Set whether the parser will collect and throw error and warning messages.

Но он появился только в последней редакции и пока не могу им воспользоваться.
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
18.08.2013, 16:03     Проверка валидности в libxml++ #4
ну задебажте код от места возникновения исключения до места генерации трейса. так будет понятно, как кастомизировать поведение, если оно кастомизируется.
sportsoft
0 / 0 / 0
Регистрация: 25.06.2013
Сообщений: 12
18.08.2013, 19:22  [ТС]     Проверка валидности в libxml++ #5
Цитата Сообщение от DU Посмотреть сообщение
ну задебажте код от места возникновения исключения до места генерации трейса. так будет понятно, как кастомизировать поведение, если оно кастомизируется.
Спасибо за помощь. Пишу в блокноте, нет возможности проверить. Пока просто отключил стандартный вывод ошибок, т.к. он все равно не используется, и стало все ок...
Yandex
Объявления
18.08.2013, 19:22     Проверка валидности в libxml++
Ответ Создать тему
Опции темы

Текущее время: 16:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru