我有一个XML文件,希望使用DTD进行验证。
为此,我在XML中包含了DTD链接:
<!DOCTYPE article SYSTEM "http://dtd.nlm.nih.gov/1.1/journalpublishing.dtd">
然后执行:
$dom = new DOMDocument();
$dom->loadHTML($xml);
if ($dom->validate()) {
echo "This document is valid!\n";exit;
}
else {
var_dump("Not OK");exit;
}
问题在于我收到了这个警告信息:
Warning: DOMDocument::validate(http://www.w3.org/TR/REC-html40/loose.dtd): failed to open stream: HTTP request failed! HTTP/1.0 500 Server Error
有什么想法吗?谢谢。
loadHTML
改为load
,除非您想触发libxml的HTML解析器模块。 - GordonloadXML
,而不是load
。也就是说,除非您的$xml
变量保存的是文件名。 - Gordon