php - 有没有办法在 PHP 中对 XML 流进行 XSD 验证

标签 php xml validation stream

假设我希望能够验证一个 50GB 以上的 XML 文件是否符合给定的 XSD。我可以用

DOMDocument::load & DOMDocument::schemaValidate

但这会占用所有的加载时间,并且通常会耗尽我所有可用的内存。有什么方法可以将 XSD 提供给 SAX 或任何其他类型的流处理器并让它验证一切正常吗?

最佳答案

您可以使用 XMLReader:

$reader = new XMLReader();
$reader->open('xmlfile.xml');
$reader->setSchema('schemafile.xsd');
while($reader->read());
$reader->close();

关于php - 有没有办法在 PHP 中对 XML 流进行 XSD 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1402144/

相关文章:

java - 将 "below"添加到线性布局 LayoutParams

xml - 斯卡拉 XML : Descendant vs Child

php - 使用准备好的声明无法清理表单

javascript - ajax 调用期间刷新页面正在破坏 php session

java - Spring XML 和 java.util.regex.Pattern.compile ...不工作?

php - 从 HTML 读取 Base64 图像到 android picasso 适配器

php 使用 mysql 数据库检查和验证表单输入

jquery验证,使字段有条件必需?

javascript - 如何使 HTML 页面无响应?

php - MySQL 认为 '2015123' 与 '02015123' 不同