-->

PHP没有反应时XSD XML验证(PHP no response when XML validat

2019-10-21 01:44发布

我需要验证在PHP应用程序的一些XML的文件与XSD文件。 我遇到的问题是,当我使用的DOMDocument或XMLReader的,我一直在执行模式验证时得到一个空白页(ERR_EMPTY_RESPONSE)。 我都没有错误。

$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';

这两个文件和XML的路径/ XSD存在。 PHP版本5.3.1是与libxml2的版本是2.7.3,我在OSX环境中工作。

UPDATE:解决方法

我已经找到一种方式来获得它的工作。 而不是使用load($ PATH)schemaValidate($ PATH)的,我用的loadXML($字符串)schemaValidateSource($字符串)。 因此,而不是给负载函数的文件路径我通过file_get_contents()函数手动加载内容,并把它给loadXML的功能。 同为XSD文件。

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';
文章来源: PHP no response when XML validation with XSD