PHP DOMNode: как извлекать не только текст, но и HTML-теги

Я пытаюсь создать скрипт, который очищает веб-сайт для получения последних обновлений новостей. К сожалению, я столкнулся с небольшой проблемой, которую я не могу исправить, имея ограниченное знание DOM.

Страница, которую я пытаюсь очистить, построена следующим образом:

 
Автор Контент в HTML Дата

Я могу легко получить нужные мне поля, за исключением содержимого. С помощью $ td-> nodeValue я получаю контент в текстовой форме, тогда как я хочу его в HTML (там есть теги 'a', 'blockquote' и т. Д.)

Вот код, который у меня есть:

try {
    $html = @ file_get_contents("test.php");
    checkIfFileExists($html);

    $dom = new DOMDocument();
    @ $dom->loadHTML($html);

    $trNodes = $dom->getElementsByTagName("tr");
    foreach ($trNodes as $tr) {

        if ($tr->getAttribute("class") == "color1" || $tr->getAttribute("class") == "color2") {

        $tdNodes = $tr->childNodes;
        foreach ($tdNodes as $td) {

            echo $td->nodeValue . "
\n"; } echo "




\n"; } } catch(Exception $e) { echo $e->getMessage(); }

Я бы предпочел не нужно прибегать к какой-либо сторонней библиотеке, но очевидно, что любой ответ будет наиболее ценным, будь то библиотека или нет.

Заранее спасибо.

6
задан Frederic Bazin 7 June 2011 в 19:21
поделиться