Как извлечь innerHTML с помощью PHP Dom

В настоящее время я использую nodeValue для вывода HTML, однако он удаляет HTML-код и просто дает мне простой текст. Кто-нибудь знает, как я могу изменить свой код, чтобы предоставить мне внутренний HTML-код элемента, используя его идентификатор?

function getContent($url, $id){

// This first section gets the HTML stuff using a URL
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
$html = curl_exec($ch);
curl_close($ch);

// This second section analyses the HTML and outputs it
$newDom = new domDocument;
$newDom->loadHTML($html);
$newDom->preserveWhiteSpace = false;
$newDom->validateOnParse = true;

$sections = $newDom->getElementById($id)->nodeValue;
echo $sections;


}

person user1259294    schedule 09.03.2012    source источник
comment
Что теперь делает код? (что в $sections?)   -  person enygma    schedule 09.03.2012
comment
Вы пробовали $ section = $ newDom- ›getElementById ($ id) -› saveHTML (); ?   -  person Martin    schedule 09.03.2012
comment
ru2.php.net/manual/en/domdocument.savehtml.php $ newDom- ›saveHTML ($ newDom-› getElementById ($ id));   -  person kirilloid    schedule 09.03.2012


Ответы (2)


Это работает для меня:

$sections = $newDom->saveXML($newDom->getElementById($id));

http://www.php.net/manual/en/domdocument.savexml.php

Если у вас PHP 5.3.6, это также может быть вариантом:

$sections = $newDom->saveHTML($newDom->getElementById($id));

http://www.php.net/manual/en/domdocument.savehtml.php

person Martin    schedule 09.03.2012
comment
Привет, Мартин, это было потрясающе. Работал нормально. - person user1259294; 10.03.2012

Я изменил код, и он у меня работает нормально. Пожалуйста, найдите ниже код

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
    $html = curl_exec($ch);
    curl_close($ch);
    $newDom = new domDocument;
    libxml_use_internal_errors(true);
    $newDom->loadHTML($html);
    libxml_use_internal_errors(false);
    $newDom->preserveWhiteSpace = false;
    $newDom->validateOnParse = true;

    $sections = $newDom->saveHTML($newDom->getElementById('colophon'));   
    echo $sections;
person Sapnandu    schedule 20.04.2014