1

嗨,我不想解析跨度标签,它是我从中提取数据的子标签.....

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

我真的不知道有什么功能或方法可以让我不能包含子标签???

4

3 回答 3

5

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

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

    echo $value->innertext;
}
于 2013-03-21T13:04:13.510 回答
0

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

$content = file_get_html($link);
$stuffiwant = $content->find("//a/text()");
var_dump($stuffiwant);
于 2013-03-21T12:55:11.833 回答
0

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

$doc->find('a.imp span')->remove();
echo $doc->find('a.imp')->text();
于 2013-03-21T23:00:43.760 回答