Nasıl (php veya perl veya olası C + +) bir şema karşı XML doğrulamak yok

1 Cevap php

Ben XML almak ve bir şema dosyası karşı doğrulamak gerekir. Daha sonra i komut (örnek updateContactList) dayalı bir işlevi çağırmak gerekir. Bunu yapmanın en iyi yolu nedir? Ben (ve hataları bildirmek) XML doğrulama endişe duyuyorum ve ben çalıştırmak için bir fonksiyon içine veri koymak için en iyi yolu nedir hiçbir fikrim yok

-Edit-NOT: i (regex) desen doğrulamak için gereken şema onaylayarak. I XML ve şema ile bir işlevi çağırabilir ve o sahte + hata msg veya return true varsa çok iyi olurdu

1 Cevap

Ben regex desen ne demek emin değilim? Bir XML belgesini doğrulamak için en yaygın yolu bir XSD) yalak. Sen DomDocument->schemaValidate Bu için kullanabilirsiniz:

$doc = new DOMDocument();
$doc->load($tempFile);
$doc->schemaValidate('schema.xsd');

Karşılık gelen DomDocument->relaxNGValidate for validating against the lesser used RelaxNG şema bulunmaktadır.

Eğer hataları yakalama ve onlar hakkında bir şeyler yapmayı planlıyorsanız Ayrıca, sadece doğru veya yanlış doğrulamak yerine, error-handler functions for libxml kullanmak isteyebilirsiniz. Özünde, çağrı libxml_use_internal_errors(true); yüklemeden önce ve belgeyi onaylamak ve libxml_get_errors kullanın ve display_xml_error hataları almak için.