2013-08-06 6 views
0

Как фильтровать дочерние теги значение <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

Это, возможно, не самое чистое решение, но оно работает:

$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">.

+0

Спасибо, Dude :) –

Смежные вопросы