<?php try { $DOM = new DOMDocument; $DOM->strictErrorChecking = true; $DOM->validateOnParse = true; $DOM->Load( 'article.xml' ); $xsl = new DOMDocument; $xsl->load( 'article.xsl' ); $xslproc = new XSLTProcessor; $xslproc->importStyleSheet( $xsl ); $test = $xslproc->transformToDoc( $DOM ); } catch ( Exception $e ) { } ?>
No i wszystko jest ok, dopóki nie chce spróbować złapać wyjątku. Zmieniam kolejność elementów w dokumencie XML i wyświetla mi takie coś:
Kod
Warning: DOMDocument::load() [function.load]: Element article content does not follow the DTD, expecting (title , date , author+ , content), got (date title author content ) in /home/matid/www/Current/XML/article.xml, line: 15 in /home/matid/www/Current/XML/XML.test.php on line 8
Logicznym się wydaje, że powinno wyrzucić wyjątek, niestety tak nie jest.
Ustawienie zmiennej strictErrorChecking na true (BTW domyślnie też jest true) powinno zmusić DOM do wyrzucania DOMException.
Wie ktoś dlaczego?