Php 简单HTMLDOM-在另一个元素之上查找一个元素
我使用的是PHP简单DOM解析器() 到目前为止,我已经设法用它做了我想做的事情,但是我正在尝试获取第一个元素的一些文本,其中某个类位于另一个类之上 我的问题是div没有嵌套在我需要从中获取信息的区域中。像这样:Php 简单HTMLDOM-在另一个元素之上查找一个元素,php,dom,Php,Dom,我使用的是PHP简单DOM解析器() 到目前为止,我已经设法用它做了我想做的事情,但是我正在尝试获取第一个元素的一些文本,其中某个类位于另一个类之上 我的问题是div没有嵌套在我需要从中获取信息的区域中。像这样: <div class="day">Sunday<div> <div class="game">...</div> <div class="game">...</div> ... <div class="day
<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\u head')
是我目前获取日头的方式,但我不确定如何将其与我的游戏相匹配,因为我将它们foreach($html->find('div.blockfix')作为$div)
这样
非常感谢您的帮助。如果上述HTML示例是
的内容,您可以通过以下方式检索相应的日期:
foreach($html->find('div.blockfix')作为$block)
{
foreach($block->find('div.game')作为$div)
{
$day=$div;
而($day=$day->prev_sibling())
{
如果($day->class=='day')休息;
}
如果($day)回显$day->;
否则回声“找不到一天”;
}
}
我将您的基本foreach
留给您,因为我不知道您是否需要做其他工作,但如果您愿意,您可以执行一个独特的foreach:
foreach( $html->find('div.blockfix div.game') as $div )
代码的核心是使用
->prev_sibling()
:我们检查当前“游戏”
的每个先前的兄弟,直到找到“day”类。你能做一些类似$div->find…
的事情吗?我已经在使用类似的东西了,但是在游戏开始之前我需要一个div。@JakeEvans你想为每个
安排一天吗?@fusion3k是的,没错。好吧,我现在总是第一个约会。我要去工作了,但这是我的代码站点,我正在从它那里发邮件。谢谢你的帮助@JakeEvans你的pastebin不再可用,在html源代码中我找不到任何游戏classI已修复我的问题,结果发现其他div的类与第一个不同。谢谢你的帮助。