如何使用PHP获取特定的DOM节点?

时间:2011-12-25 00:38:53

标签: php dom

我可以使用PHP的DOMDocument获取所有<a>标签,但是如何才能获得<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 个答案:

答案 0 :(得分:1)

使用xpath

$ xpath-&GT;查询( “// UL / A”);

我使用xpath构建了非常复杂的选择器。它真的很强大。