我正在使用PHP Simple DOM Parser(http://simplehtmldom.sourceforge.net/),
到目前为止,我已经设法用它做了我想做的事情,但是我试图得到第一个元素的一些文本,某个类在另一个元素之上。
我的问题是div不会嵌套在我需要获取信息的区域中。像这样:
<div class="day">Sunday<div>
<div class="game">...</div>
<div class="game">...</div>
...
<div class="day">Monday<div>
<div class="game">...</div>
<div class="game">...</div>
...
每个游戏都有一个标题,时间,频道......所以当我将所有内容收集到我的阵列中时,我希望能够找到第一个class="day"
以便将其添加到我的阵列中。
$html->find('h2.time_head')
是我目前正在筹备的日子,但我不确定如何才能将其与我的游戏相匹配,因为我得到的是foreach($html->find('div.blockfix') as $div)
。{ / p>
感谢任何帮助。
答案 0 :(得分:0)
如果以上HTML示例是<div class="blockfix">
的内容,您可以通过这种方式检索相应的日期:
foreach( $html->find('div.blockfix') as $block )
{
foreach( $block->find('div.game') as $div )
{
$day = $div;
while( $day = $day->prev_sibling() )
{
if( $day->class == 'day' ) break;
}
if( $day ) echo $day->__toString();
else echo 'no day found';
}
}
我离开你的基本foreach
,因为我不知道你是否做了其他的事情,但如果你愿意,你可以执行一个独特的foreach:
foreach( $html->find('div.blockfix div.game') as $div )
代码的核心是->prev_sibling()
的使用:我们检查当前“游戏”<div>
的每个兄弟,直到找到“day”类。