过滤子标签值

时间:2013-08-06 09:05:50

标签: php html dom

如何过滤<div>的子标签值并仅显示父内部文本? 例如,在此代码中:

include('simple_html_dom.php');

$htm='<div class="date">
         <span class="title">post date <!-- or Anything --> :</span>
         2103/04/07 13:06
      </div>';

$html = str_get_html($htm);    

$date = $html->find('.date ',0)->plaintext;

echo $date;

结果是:

post date : 2103/04/07 13:06 

但我需要:

2103/04/07 13:06  

有没有办法过滤<span>值?在我的情况下,我更喜欢不使用模式。 谢谢

1 个答案:

答案 0 :(得分:1)

这可能不是最干净的解决方案,但它有效:

$dateDiv = $html->find('.date', 0);
$textElems = $dateDiv->find('text');

$str = '';
foreach ($textElems as $subText) {
    if ($subText->parent() === $dateDiv) {
        $str .= $subText->plaintext;
    }
}
echo $str;

它检索所有文本块,然后删除所有不是<div class="date">直接子节点的节点。