如何验证DOMDocument对象

时间:2013-03-29 12:34:54

标签: php xml dom

$rss = new DOMDocument();
$rss->load($url);

如果我希望用户提供任何rssfeed链接来获取xml文档,并且用户试图提供任何不包含任何xml文档的随机链接。它肯定会显示错误或警告。

如何验证这种情况?

3 个答案:

答案 0 :(得分:4)

使用libxml_use_internal_errors自行处理错误。来自http://php.net/manual/de/function.libxml-use-internal-errors.php

的示例
// enable user error handling
libxml_use_internal_errors(true);

// load the document
$doc = new DOMDocument;

if (!$doc->load('file.xml')) {
    foreach (libxml_get_errors() as $error) {
        // handle errors here
    }

    libxml_clear_errors();
}

答案 1 :(得分:0)

您可以使用load的返回值来检查错误并使用@

来抑制输出
$rss = new DOMDocument();
if (@$rss->load($url) == false) {
    //error...
}

答案 2 :(得分:0)

试试这个:

$errors = array();
set_error_handler(function ($number, $error) use (&$errors) {
    if (preg_match('#^DOMDocument::load\(\):#', $error)) {
        $errors[] = $error;
    }
});

$url = '';
$doc = new DOMDocument();
if ($doc->load($url) === false) {
    // handle errors from $errors
}

restore_error_handler();