我试图通过url(即rss)加载xml文件。 但是当我使用
时$doc = new DOMDocument();
$doc->load($url);
if($doc->load($url,LIBXML_NOWARNING)===false)
{
echo "Hello";
//echo @$doc->load($url,LIBXML_NOWARNING);
//exit;
$error = $doc->load($url);
print_r($error);exit;
}
它只打印Hello .. 第2行没有显示警告。
请告诉我解决方案,因为我什么都没得到,会发生哪些错误。
答案 0 :(得分:0)
这是因为渲染的内容不可见。尝试在浏览器上按 Ctrl + U 。
此外,而不是print_r
尝试使用var_dump
$error = $doc->load($url);
var_dump($error);
编辑:
所以看起来你的$doc->load
首先失败了。您需要将if
语句更改为
if($doc->load($url,LIBXML_NOWARNING)===true) // Replaced false with true.
或只是
if($doc->load($url,LIBXML_NOWARNING))
您的XML加载失败,这就是它进入if
语句的原因。检查网址拼写是否正确,或检查网址确实是否存在。
答案 1 :(得分:0)
从exit;
之后的代码中移除echo "Hello";
答案 2 :(得分:0)
尝试使用libxml_use_internal_errors()
来捕获XML解析错误:
<?php
$doc = new DOMDocument();
$doc->recover = true;
libxml_use_internal_errors(true);
$url = 'http://page2rss.com/rss/91a83628a27c43b6ab4f0b3959f69f5a';
$doc->load($url);
$errors = libxml_get_errors();
foreach ($errors as $error) {
printf("Error %d at line %d, column %d:\n\t%s\n",
$error->code, $error->line, $error->column, $error->message);
}
libxml_use_internal_errors(false);
// Error 9 at line 82, column 155:
// Input is not proper UTF-8, indicate encoding !
// Bytes: 0xAE 0x20 0x28 0x52