0

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内で新しいクエリを使用して、適切な要素を選択できますか?

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 に答える