Autor Zpráva
JardaB
Profil
Zdravím,

poradí někdo s problémem, kdy chci vypisovat chyby při načítání XML?

Problém je ten, že když jsem načítal takhle, bylo vše ouk, cyklus projel položky a potřebné zpracoval:

$xml = new XMLReader (); // nový reader
$xml->open($klient_xml[xml], LIBXML_NOENT|LIBXML_DTDLOAD|LIBXML_DTDATTR); // otevře soubor
while($xml->read())
{
// zpracování položek
}

Chtěl jsem ve finále přidat výpis validačních chyb, kód viz níže. Kde se to zastaví na while($xml->read()) a oznámí chybu:
Warning: XMLReader::read() [xmlreader.read]: An Error Occured while reading in
Když odstraním řádek zapnutí validace, chyba se neobjeví, ale logicky pak nedostanu výpis chyb. Dokumenty mi normálně prochází jinými parsery.



libxml_use_internal_errors(true);  // nastavení obsluhy chyb
$xml = new XMLReader (); // nový reader
$xml->open($klient_xml[xml], LIBXML_NOENT|LIBXML_DTDLOAD|LIBXML_DTDATTR); // otevře soubor
$xml->setparserProperty(XMLReader::VALIDATE, true); // zapnutí validace

while($xml->read())
{
}

foreach ($errors as $chyba)   // vypis chyb 
   {
    $vypis_chyb.= $chyba->file.":".$chyba->line.":".$chyba->column.":".$chyba->message."<br>";
   }
echo $vypis_chyb;   
JardaB
Profil
Vyřešeno použitím schémata RELAX NG, výše uvedené vyžadovalo připojení DTD

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: