我正在尝试使用Zend_Dom_Query从网页中获取一些特定内容。 我有一个查询工作从一个dom元素获取内容。现在我想选择第二个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中使用新查询来选择正确的元素吗?
答案 0 :(得分:0)
$i=0;
foreach ($dom->query('div.w2') as $content) {
echo $content->getElementsByTagName('h2')->item($i)->nodeValue; // this gives me the h2 value
echo $content->getElementsByTagName('a')->item($i)->getAttribute('href');
$i++;
}