2011-10-18 64 views
0

我正在使用php的DomDocument类来加载一个HTML文件,然后清空它的内容。问题是,当我做.removeChild()它给了我'未找到错误'。我的继承人代码在php中获取'DomNode'类型对象

$doc=new DOMDocument(); 
$doc->loadHTMLFile("a.html"); 
$body= $doc->getElementsByTagName('body')->item(0); 
foreach($body->childNodes as $child) 
{ 
     $body->removeChild($child); 

} 

$孩子是一个DOMText型....可能是因为removeChild之预计的DOMNode而不是一个DOMText?如果是的话,我如何迭代childNodes,使$ child是DOMNode类型的?

回答

0

使用for循环而不是foreach循环。

$doc=new DOMDocument(); 
$doc->loadHTML("c.html"); 
$doc->preserveWhiteSpace = true; 
$body = $doc->getElementsByTagName('body')->item(0); 
$children = $body->childNodes; 
$length = $children->length; 
for($i = 0 ; $i < $length; $i++) { 
    $child = $children->item($i); 
    if ($child) 
     $body->removeChild($child); 
} 
$html = $doc->saveHTML(); 
echo $html;