简单的html dom解析器 - >找到"条件"

时间:2018-02-21 23:17:19

标签: php html parsing dom

我在使用简单的html dom解析器从网站解析时遇到问题..我尝试解析这样的代码:

<li>
 <p class="x"></p><p>..</p> <p>..</p> <p>..</p>
 <p class="x"></p><p>..</p> <p>..</p> <p>..</p>
 <p class="x"></p><p>..</p> <p>..</p> <p>..</p>
</li>

我的目标是将这些段落分开保存。 对于具有类定义的段落很容易,如$year = $class->find(p[class=x]');,但我也需要解析其他段落。如何保存到另一个数组只有没有类规范的段落而没有带类的段落?

1 个答案:

答案 0 :(得分:1)

我认为您无法在find方法中执行此操作,因此请在以下后面进行过滤:

$year = $class->find('p');
// filter out nodes with empty class properties
$without = array_filter($year, function($v) { return empty($v->class); });

// since array_filter preserves keys
$with = array_diff_key($year, $without);

// or filter again checking that class is NOT empty
$with = array_filter($year, function($v) { return !empty($v->class); });