Варнинги при валидации xml

Alkinoy

Начинающий
Варнинги при валидации xml

Трям, народ. С наступившим!

Вопрос - при валидации xml DOMDocument вываливает кучу варнингов в случае проблем (использую метод validate() ). Давить их собакй не хочется, а умное решение в голову не лезет после НГ. На php.net в комментах был вариант (товарищ написал обертку для DOM) - это единственный вариант?
Вот основная часть его кода:
PHP:
        private $_delegate;
        private $_validationErrors;
       
        public function __construct (DOMDocument $pDocument) {
            $this->_delegate = $pDocument;
            $this->_validationErrors = array();
        }
       
        public function __call ($pMethodName, $pArgs) {
            if ($pMethodName == "validate") {
                $eh = set_error_handler(array($this, "onValidateError"));
                $rv = $this->_delegate->validate();
                if ($eh) {
                    set_error_handler($eh);
                }
                return $rv;
            }
            else {
                return call_user_func_array(array($this->_delegate, $pMethodName), $pArgs);
            }
        }
 

Alkinoy

Начинающий
Так вопрос не в том, что бы получить ошибки, вопрос в том, как подавить варнинги класса DOMDocument...
 

slach

Новичок
"кучу варнингов" это каких именно?
валидация на чем сделана? DTD ? XMLSchema?

если у тебя ставится свой set_error_handler?
то в чем проблема то? чем тебе варнинги неугодили?


вообще по идее валидация для XML DOMDocument->validate()
она либо true либо false, ни про какие варнинги в документации не сказано
 

Alkinoy

Начинающий
варнингов много сыпется в момент валидации - например, отсутствие DTD, невалидные конструкции в самом xml. тру или фолс - это возвращаемые значения, а варнинги - это так, довесок.
Вот тебе например?
Notice: DOMDocument::validate() [domdocument.validate]: No DTD given in XML-Document in ... .php on line ...

Warning: DOMDocument::validate() [domdocument.validate]: no DTD found! in ... .php on line ...

Тут идет ссылка на строку, где вызывается метод validate.

Про свой еррор хэндлер я знаю, я собсно и спросил - это единственный метод?

UPD крайний вопрос убрал, нашел как.
 

slach

Новичок
ну вообще так то да
как говорится варнинги АБСОЛЮТНО правильные
если нет DTD а ты хочешь валидировать, то если бы варнинга не было, то это было бы ПЛОХО

грузить невалидный XML это круто ;)

ну для подавления ошибок еще есть переключение error_reporting временное для определенных кусков кода
 

Alkinoy

Начинающий
Автор оригинала: slach грузить невалидный XML это круто ;)
не совсем понял радости - для этого и делаю валидацию. круто не грузить, а использовать невалидный хмл....
 

slach

Новичок
не правильно выразился
невалидные конструкции?? или вообще now-well-formed ?

ну и ПЫТАТЬСЯ валидировать XML в котором нет DTD ...
это круто =)

в смысле, вы там чтото такое очень похожее на rss парсите?

почему такие данные грязные? что валидировать приходится при этом правил валидации как таковых нет??
 
Сверху