DOMDocument->loadHTML 사용시 로딩시키는 html 에 DOCTYPE이 없을 경우,
getElementById 가 제대로 가져오지 못함.



아래의 결과값은 NULL
<?
$doc = new DOMDocument();

$doc->loadHTML('
<html><body><div id="test">테스트</div></body></html>');
$nodeList = $doc->getElementById("test");

var_dump($nodeList);
?>





DOCTYPE을 넣어야 제대로 object(DOMElement) 라고 결과값이 나옴
<?
$doc = new DOMDocument();

$doc->loadHTML('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><body><div id="test">테스트</div></body></html>');
$nodeList = $doc->getElementById("test");

var_dump($nodeList);
?>





Posted by bloodguy
,