PHP no response when XML validation with XSD

混江龙づ霸主 提交于 2019-12-13 00:47:44

问题


I need to validate some xml-files with xsd files in a php application. The problem I'm having is when I use domdocument or xmlreader, I keep getting a blank page (ERR_EMPTY_RESPONSE) when executing schema validation. I get no errors at all.

$reader = new XMLReader();
$reader->open("../xml/testxml.xml");
echo $reader->setSchema("../xml/validation.xsd") ? 'valid' : 'invalid';

$doc = new DOMDocument();
$doc->load("../xml/testxml.xml");
echo $doc->schemaValidate("../xml/validation.xsd") ? 'valid' : 'invalid';

Both files & paths of the xml/xsd exists. The php version is 5.3.1 & libxml2 version is 2.7.3 and I'm working in an OSX environment.

UPDATE: WORKAROUND

I have found a way to get it working. Instead of using load($path) & schemaValidate($path), I have used loadXml($string) & schemaValidateSource($string). So instead of giving the file path in the load function I load the content manually via file_get_contents() and give it to the loadXml function. Same for the xsd file.

libxml_use_internal_errors(true);

$doc = new DOMDocument();
$doc->loadXml(file_get_contents("../xml/testxml.xml"));
echo $doc->schemaValidateSource(file_get_contents("../xml/validation.xsd")) ? 'valid' : 'invalid';

来源:https://stackoverflow.com/questions/26094723/php-no-response-when-xml-validation-with-xsd

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!