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

Worked great!ありがとう! – cwd

+0

あなたは大歓迎です! –

関連する問題