Her şeyden önce, XML dosyası gerçekten UTF-8 olarak kodlanmış olduğundan emin olun. Değilse XMLReader::open()
a> için ikinci parametre olarak kodlamayı belirtin.
Kodlama hatası bir UTF-8 belgede gerçek biçimlendirilmiş byte dizisi nedeniyle ve PHP kullanarak eğer> Eğer {(hata seviyesine bağlı olarak) geçmek LIBXML_NOERROR
ve / veya verebilecek 5.2.0 eğer [ (1)]} {üçüncü parametre için bir bit maskesi olarak [(2)]} a>:
$xml = new XMLReader();
$xml->open('myxml.xml', null, LIBXML_NOERROR | LIBXML_NOWARNING);
Yorum yok PHP kullanıyorsanız> Eğer libXML
a> hata işleme çimdik 5.1.0.
// enable user error handling
libxml_use_internal_errors(true);
/* ... do your XML processing ... */
$errors = libxml_get_errors();
foreach ($errors as $error) {
// handle errors here
}
libxml_clear_errors();
Önceki iki çalışma-arounds aslında onlar sadece hata çıkışını bastırmak ise XMLReader
, bir hata durumunda okumaya devam ya da izin verirseniz ben aslında bilmiyorum. Ama denemeye değer.
Responding to comment:
libXML
tanımlar XML_PARSE_RECOVER
(1) but ext/libxml does not expose this constant as a PHP constant. Perhaps it's possible to pass the integer value 1
$options
parametresine.
$xml = new XMLReader();
$xml->open('myxml.xml', null, LIBXML_NOERROR | LIBXML_NOWARNING | 1);