Zend_Dom_Queryを使用して、Webページから特定のコンテンツを取得しようとしています。1つのdom要素からコンテンツを取得するためのクエリが機能しました。次に、このコンテンツも取得するために2番目のdom要素を選択します。
これはhtmlです:
<div class="blocks">
<div class="w2">
<h2>Some title</h2>
<p>some text</p>
<p>more text</p>
<p class="more-info"><a href="#">link</a></p>
</div>
<div class="w2">
<h2>Some title</h2>
<p>some text</p>
<p>more text</p>
<p class="more-info"><a href="#">link</a></p>
</div>
</div>
これまでの私のコード:
$client = new Zend_Http_Client();
$client->setUri('http://awsomewebsite');
$result = $client->request('GET');
$response = $result->getBody();
$dom = new Zend_Dom_Query($response);
foreach ($dom->query('div.w2') as $content) {
echo $content->getElementsByTagName('h2')->item(0)->nodeValue; // this gives me the h2 value
echo $content->getElementsByTagName('a')->item(0)->getAttribute('href');
}
ここで問題となるのは、アンカーリンクがさらにある場合、このソリューションが機能しないことです。私の質問は:複数の要素を選択する正しい方法は何ですか?または、このforeach内で新しいクエリを使用して、適切な要素を選択できますか?