📅  最后修改于: 2023-12-03 14:45:14.332000             🧑  作者: Mango
在 PHP 中,DOMDocument 类提供了多种方法来解析 XML 文件,其中之一就是 RelaxNGValidateSource() 函数。这个函数可以用来验证一个 XML 文件是否符合一定的规则。
RelaxNGValidateSource() 函数将一个 XML Schema 标准中的 RelaxNG 格式文件作为参数,用来校验 XML 文件。RelaxNG 格式是一种简单灵活的 XML Schema 语言,可以用来描述 XML 文档的结构和内容。
下面是 RelaxNGValidateSource() 函数的语法:
public bool DOMDocument::relaxNGValidateSource(string $source)
参数说明:
$source
: 要验证的 RelaxNG 文件路径或者直接输入的 RelaxNG 字符串内容。返回值:
下面是一个简单的 RelaxNG 格式文件,用来校验一个 XML 文件是否符合规定:
start = element root {
element fruit {
attribute name { text }
attribute color { text }
}+
}
接下来的 PHP 代码将使用 RelaxNGValidateSource() 函数来验证一个 XML 文件,看看它是否符合上述规则:
$file = 'fruits.xml';
$relaxng = <<<'RelaxNG'
start = element root {
element fruit {
attribute name { text }
attribute color { text }
}+
}
RelaxNG;
$doc = new DOMDocument();
$doc->load($file);
if ($doc->relaxNGValidateSource($relaxng)) {
echo "$file 符合 RelaxNG 验证规则。";
} else {
echo "$file 不符合 RelaxNG 验证规则。";
}
输出结果:
fruits.xml 符合 RelaxNG 验证规则。