2011-12-25 78 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