DOMDocument->getElementById를 이용하여 가져온 node의 innerHTML 가져오는 함수


function getInnerHTML($node)
{
    $result = null;

    $child = $node->childNodes;
    if ($child->length<1) return null;

    for ($i=0; $i<$child->length; $i++) {
        $item = $child->item($i);
        if (($item->nodeName=='#text') AND (strlen(trim($item->nodeValue))==0)) continue;

        $tmp_doc = new DOMDocument();
        $tmp_doc->formatOutput = true;
        $tmp_doc->appendChild($tmp_doc->importNode($item, true));
        $result .= $tmp_doc->saveHTML();

        unset($tmp_doc);
    }
  
    return $result;
}


// 예제

$doc = new DOMDocument('1.0', 'UTF-8');
$doc->loadHTMLFile('some.html');
$node = $doc->getElementById('some_id');
$innerHTML = getInnerHTML($node);








Posted by bloodguy
,