QueryPath と PHP を使用しています。
これにより、.eventdate は正常であることがわかりますが、.dtstart に対しては何も返されません。
$qp = htmlqp($url);
foreach ($qp->find('table#schedule')->find('tr') as $tr){
echo 'date: ';
echo $tr->find('.eventdate')->text();
echo ' time: ';
echo $tr->find('.dtstart')->text();
echo '<br>';
}
2 つを交換すると、.dtstart は問題なく動作しますが、.eventdate は何も返しません。したがって、querypath の find() は要素を破棄し、必要な値のみを返し、$tr を反復処理して複数のアイテムを検索できないようです。
私が扱っているTRのHTMLの例を次に示します。
<tr class="event"><th class="date first" scope="row"><abbr class="eventdate" title="Thursday, February 01, 2011" >02/01</abbr><span class="eventtime" ><abbr class="dtstart" title="2012-02-01T19:00:00" >7:00 PM</abbr><abbr class="dtend" title="2012-02-01T21:00:00" >9:00 PM</abbr></span></th><td class="opponent summary"><ul><li class="first">@ <a class="team" href="/high-schools/ridge-wolves/basketball-winter-11-12/schedule.htm" >Ridge </a> <span class="game-note">*</span></li><li class="location" title="Details: Ridge High School">Details: Ridge High School</li><li class="last"><a class="" href="/local/stats/pregame.aspx?contestid=4255-4c6c-906d&ssid=381d-49f5-9f6d" >Preview Game</a></li></ul></td><td class="result last"><a class="pregame" href="/local/stats/pregame.aspx?contestid=4255-4c6c-906d&ssid=381d-49f5-9f6d">Preview</a></td></tr>
最初の検索の前に $tr をコピーして、2 番目の検索の前に置き換えようとしましたが、うまくいきませんでした。
各 $tr で特定の変数を検索するにはどうすればよいですか?
参考までに、.eventdate と .dtstart を超えてa
、対戦相手とa
アンカー テキストの下に .opponent、href も必要です。