Как получить элемент по идентификатору в классе php DOMDocument? - PullRequest
0 голосов
/ 05 января 2011

Я пытаюсь проанализировать HTML-файл, используя класс DOMDocument в PHP.
Пример файла HTML:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
        <title></title>
    </head>
    <body>
        <p id="myparagraph"></p>
    </body>
</html>

и я загрузил его, используя

$document = new DOMDocument();
$document->loadHtmlFile("page.html");

Теперь я пытаюсь получить элемент p по id таким образом

print_r($document->getElementById("myparagraph"));

По какой-то причине это не работает. Так что с этим не так?

1 Ответ

1 голос
/ 05 января 2011

Согласно комментариям в документации PHP getElementById не очень хорошо работает. Что вы можете сделать, это создать свою собственную функцию, подобную этой:

function getElementById($id)
{
    $xpath = new DOMXPath($this->domDocument);
    return $xpath->query("//*[@id='$id']")->item(0);
}

Благодарю paradox_haze, который разместил информацию в комментариях к документации по PHP.

...