Как я могу использовать PHP для получения определенных узлов DOM? - PullRequest
1 голос
/ 25 декабря 2011

Я могу получить все теги <a>, используя PHP DOMDocument, но как я могу получить только те, которые находятся внутри списка <ul>? Я попытался $items->childNodes без удачи. Должен ли я просто переключиться на PHP Simple HTML DOM Parser ?

$string = '
<html>
<head>
</head>
    <body>

        <p>Please visit my site:
            <a href="http://mysite.com/">My Site</a>
        </p>

        <p>My friend's sites:</p>
        <ul>
            <a href="http://friend1.com/">Friend 1</a>
            <a href="http://friend2.com/">Friend 2</a>
            <a href="http://friend3.com/">Friend 3</a>
        </ul>

    </body>
</html>
';


$DOM = new DOMDocument;
@$DOM->loadHTML($string);

$items = $DOM->getElementsByTagName('a');

for ($i = 0; $i < $items->length; $i++){
    echo $items->item($i)->nodeValue;
    echo '<br />';
}

1 Ответ

1 голос
/ 25 декабря 2011

Использование xpath .

$ xpath-> запрос ( "// уль / а");

Я создал довольно сложные селекторы, используя xpath. Это действительно мощно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...