从简单的html dom解析器中剥离span标记

时间:2013-03-21 12:37:45

标签: php simple-html-dom

我不想解析span标签,这是我提取数据的子标签......

Ex:- <a class="imp">
     Some data 1 2 3
     <span>
      Unwanted Data
     </span>
     </a>

我正在使用的代码: -

  foreach($html->find(a.imp) as $value)
   {
          echo $value->innertext;
   }

Output:-
Some data 1 2 3
Unwanted Data...

 Desired output:-
 Some data 1 2 3

我真的不知道是否有任何功能或方式,所以我不能包括儿童标签???

3 个答案:

答案 0 :(得分:5)

我相信您必须遍历第一组结果,找到所有span元素并将每个span元素的outertext设置为空字符串,从而删除该元素的整个HTML。

foreach($html->find('a.imp') as $value)
{
    foreach($value->find('span') as $e)
    {
        $e->outertext = '';
    }

    echo $value->innertext;
}

答案 1 :(得分:0)

简单的HTML DOM解析器将起作用:

$content = file_get_html($link);
$stuffiwant = $content->find("//a/text()");
var_dump($stuffiwant);

答案 2 :(得分:0)

我不相信简单有一个干净的方法来删除元素。在phpquery中你可以:

$doc->find('a.imp span')->remove();
echo $doc->find('a.imp')->text();