извлечение значения узла из дерева DOM - PullRequest
0 голосов
/ 26 ноября 2011

Я хочу, чтобы код ниже отображал строку, найденную внутри оборудованного элемента.
Разве это не должно работать?

<?

    $doc = new DOMDocument();
    $doc->loadHTML('http://website.com');

    $elements = $doc->getElementByID("equipped");

     echo $elements->nodeValue . "\n";



    ?>

1 Ответ

1 голос
/ 26 ноября 2011

При использовании DOMDocument::getElementById() я бы предложил установить для свойства validateOnParse значение true, чтобы документ был правильно отформатирован и метод работал правильно.

Если содержимое узла - только текст, вы можете попробовать атрибут textContent. Значение атрибута nodeValue может варьироваться в зависимости от типа элемента.

Это будет выглядеть так:

<?php
    $doc = new DOMDocument();
    $doc->validateOnParse = true;
    $doc->loadHTMLFile('http://website.com');
    $element = $doc->getElementById("equipped");

    if (!is_null($element)) {
        $content = $element->nodeValue;

        if (empty($content)) {
            $content = $element->textContent;
        }

        echo $content . "\n";
    }
?>

Надеюсь, это поможет.

...