PHP 使用 xsd 验证大型 XML 文件时,脚本会死掉

PHP when validating a large XML file with an xsd, the script just dies

提问人:AlphaSoldier 提问时间:11/12/2023 更新时间:11/12/2023 访问量:38

问:

只有 1000 个条目它就可以工作,但超过 100 000 个它就会死亡。

这是我的代码

$dom = new DOMDocument;


libxml_use_internal_errors(true);
$dom->load($xmlFile);
libxml_clear_errors();


if ($dom->schemaValidate($xsdFile)) {
    echo 'Validation successful. The XML file is valid against the schema.'.PHP_EOL;
} else {
    echo 'Validation failed. Errors:'.PHP_EOL;
    $errors = libxml_get_errors();
    foreach ($errors as $error) {
        echo "\n" . $error->message . PHP_EOL;
    }
    libxml_clear_errors();
}
PHP XML XSD

评论

0赞 Honk der Hase 11/12/2023
检查日志中是否有错误。可能没记网了
0赞 AlphaSoldier 11/12/2023
我能做些什么来避免这种情况
0赞 Honk der Hase 11/12/2023
增加内存限制...如果是这样的话
0赞 jdweng 11/12/2023
也许你得到了一个例外。
0赞 Michael Kay 11/12/2023
我相信 libxml2 能够在流模式下进行模式验证,尽管我无法帮助了解 PHP 调用的细节。或者,使用SaxonC-EE(我公司的产品)。

答: 暂无答案