针对没有声明DOCTYPE的DTD外部文件验证XML


Validate XML against a DTD external file without DOCTYPE declared

我有外部XML和DTD文件。不幸的是,XML文件没有声明指向其相应的DTD文件。仍然可以使用PHP对它进行验证吗?任何帮助或链接到一个资源将非常感激。谢谢。

PHP中针对给定DTD的重复XML验证

<?php
$xml = <<<END
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE foo SYSTEM "foo.dtd">
<foo>
    <bar>baz</bar>
</foo>
END;
$root = 'foo';
$old = new DOMDocument;
$old->loadXML($xml);
$creator = new DOMImplementation;
$doctype = $creator->createDocumentType($root, null, 'bar.dtd');
$new = $creator->createDocument(null, null, $doctype);
$new->encoding = "utf-8";
$oldNode = $old->getElementsByTagName($root)->item(0);
$newNode = $new->importNode($oldNode, true);
$new->appendChild($newNode);
$new->validate();
?>