Mam kod PHP ,który służy do walidacji pliku XML
<?php libxml_use_internal_errors(true); $doc = new DOMDocument('1.0'); $doc->loadXML($plik); $bledy = libxml_get_errors(); } else { foreach($bledy as $b) { } // echo "<pre>"; // print_r($bledy); // echo "</pre>"; } ?>
Niestety wywala mi ciągle, że plik XML jest poprawny, nawet wtedy jak wgram kompletnie nie poprawny plik XML, co jest źle ? Podejrzewam, że nie mam biblioteki libxml , ale nie mogłem wyszukać w necie jak ją zainstalować (pracuje na php 5.1
Mam też taki kod
<?php $dom = new DOMDocument(); $dom->load('WDZP.xml'); ?>
Ale wyala błędy w taki niechlujny sposób :
Warning: DOMDocument::validate() [domdocument.validate]: Element DANEBANKU content does not follow the DTD, expecting (NAZWA , NUMERKONTA), got (NUMERKONTA ) in /home/wojtek9/public_html/Zadanie/walidacja2.php on line 7
Chciałbym aby wywalał tylko pierwszą część, wie ktoś jak to zrobić ? Albo co zrobić żeby działał pierwszy kod ?
Temat do zamknięcia ,znalazłem rozwiązanie :
<?php /** * Hold thrown errors statically */ function staticerror($errno, $errstr, $errfile, $errline, $errcontext, $ret = false) { if ($ret === true) { return $errs; } $tag = 'DOMDocument::validate(): '; } // Load a document $dom = new DOMDocument; $dom->load('WDZP.xml'); // Set up error handling // Validate $dom->validate(); // Restore error handling // Get errors $errs = staticerror(null, null, null, null, null, true); ?>