简单的PHP dom解析器 - 获取没有标记的文本

时间:2012-04-28 00:34:29

标签: php parsing dom foreach find

我正在尝试检索服务器的游戏模式。 这是代码:

<p>
<strong>Grand Bazaar</strong>
<span class="bullet">•</span>
Rush •
<img src="src.png">
</p>

我正在努力寻找拉什。我试过这个剧本:

    foreach($html->find('p .bullet') as $e)
{
    $mode = $e->nextSibling ();
}

但脚本只是跳过“Rush”并继续到下一个标签。 我相信你们都知道你做得比我好。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

你需要让你的问题更清楚......“我正在尝试检索服务器的游戏模式”&lt; - 例如,这与你的问题无关。

你遇到的问题是“Rush”只不过是文本,它不是.bullet的兄弟,因为这意味着Rush是标记的内容,它是.bullet的兄弟,比如说

<span class="bullet">•</span>
<span>Rush •</span>
<img src="src.png">

如果您呈现的结构始终相同,并且您通过代码的外观(http://simplehtmldom.sourceforge.net/)使用简单HTML DOM,那么您可以清除内容标签第一:

$strong = $html->find('strong'); // I think you can use prevSibling in your example
$strong->innerText = null;

然后在整个段落上只有strip_tags()并获取文本?

相关问题