0

我正在尝试使用 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 中使用新查询来选择正确的元素吗?

4

1 回答 1

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++;
}
于 2013-01-29T03:34:47.053 回答