2011-10-18 3 views
0

php의 DomDocument 클래스를 사용하여 HTML 파일을로드 한 다음 그 내용을 비 웁니다. 문제는 .removeChild()가 'Not Found Error'를 제공하는 경우입니다. 로 removeChild는 DOMNode하지 DOMText을 기대하기 때문에 내 코드'DomNode'타입 객체 가져 오기

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

} 

$ 자식 DOMText의 유형 인을 heres .... 될 수있다? 예, 그렇다면 어떻게 $ child가 DOMNode 유형인지와 같은 childNodes를 반복 할 수 있습니까?

답변

0

foreach 루프 대신 for 루프를 사용하십시오.

$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;