2011-12-25 79 views
1

我可以使用PHP的DOMDocument获得所有<a>标签,但是我怎样才能得到<ul>列表中的那些?我试过$items->childNodes没有运气。我应该切换到PHP Simple HTML DOM Parser如何使用PHP获取特定的DOM节点?

$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

使用xpath

$ xpath-> query(“// ul/a”);

我已经使用xpath构建了相当复杂的选择器。它非常强大。

+0

工作很好!谢谢! – cwd 2011-12-25 00:48:36

+0

不客气! – 2011-12-25 01:10:30