DOM korurken XML ayrıştırılırken nasıl ayrıntılı hata bilgileri alabilirim?

1 Cevap php

Bir textarea için XML eklemek ve bir veritabanı tablosunda saklanabilir sunabilirsiniz Sitemde yöneticileri hangi bir web formu inşa ediyorum, ama ben XML ayrıştırma iyi yöntem olarak biraz kafam karıştı.

PHP komut dosyası XML Ayrıştırma ve herhangi bir ayrıştırma hataları varsa bu ayrıştırıcı formu teslim yönetici için durdu hata mesajı ve çizgi / sütun dönmelidir gerekiyor. Ayrıştırma sonra düğümlerin varlığı için çeşitli kontroller çalıştırmak için DOM erişmek için gereken ve XPath kullanarak bağlıyor.

I xml_create_parser() kullanın ve xml_parse(), ben false döndürülür eğer ben sonra olduğumu ayrıntılı hata bilgileri alabilirsiniz. Ben bunu ayrıştırmak Ancak, sonra ben XML DOM erişemiyor. I DOMDocument::loadXML(), ben okudum ne, bu ayrıştırma hataları istisnalar atmak değil kullanırsanız, sadece PHP günlüğüne onları çıktılar.

Ben ilk dosyaları birkaç 10-20KB olmak 10kb daha çok küçük düşünüyor, xml_parse() ve başarılı ise o zaman, DOMDocument::loadXML() çalıştırırsanız çalıştı eğer büyük bir performans isabet olurdu? Herkes daha iyi bir yol biliyor mu?

1 Cevap

Sen etkinleştirebilirsiniz libxml_use_internal_errors ve sonra-eğer DOMDocument :: load () başarısız sorgu ile ayrıntılı hata iletileri libxml_get_errors()

<?php
$xml = '<a>
  <b>xyz</b>
  <c>
</a>';

libxml_use_internal_errors(true);
$doc = new DOMDocument;
if ( !$doc->loadxml($xml) ) {
  $errors = libxml_get_errors();
  var_dump($errors);
}