DOMDocument :: replaceChild()以500(内部服务器错误)响应结果

时间:2012-11-09 16:05:25

标签: domdocument php

我有问题。 PHP文件响应500错误。无法理解是什么问题。 PHP错误消息是:

  

致命错误:未捕获的异常'DOMException',消息'未找到错误'

代码如下:

$dom = new domDocument;
$dom->preserveWhiteSpace = false;
$dom->loadHTML($cont);

$links  = $dom->getElementsByTagName('a');
$images = $dom->getElementsByTagName('img');
$divs   = $dom->getElementsByTagName('div');

foreach ($links as $link)
{
    $link->setAttribute('target','_blank');
}

foreach ($images as $image)
{
    $image->setAttribute('style','max-width:405px');
}

foreach ($divs as $div)
{
    $pnode = $dom->createElement('p', $div->nodeValue);
    $dom->replaceChild($pnode, $div); //the problem string
}

更新:如果问题字符串被注释,则没有错误。

2 个答案:

答案 0 :(得分:0)

代码似乎没问题。检查phpinfo();中是否启用了DOM / XML php扩展。添加

ini_set('display_errors', 1);
error_reporting(E_ALL);

代码或enable php error showing in .htaccess

答案 1 :(得分:0)

感谢air4x

replaceChildren只查找一个级别。在我的sutuation中,它正在寻找和根中的元素。

解决方案如下:

 $div->parentNode->replaceChild($pnode, $div);