我在使用简单的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]');
,但我也需要解析其他段落。如何保存到另一个数组只有没有类规范的段落而没有带类的段落?
答案 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); });