2013-03-21 191 views
1

HI我不想分析跨度标签,它是从我在哪里提取我的数据.....剥离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 

我真的不KNW有任何功能或方式,使我不能包括子标签???

+0

这是XPath的工作。东西沿线/ /文本() – mkaatman 2013-03-21 12:40:47

+0

但我使用simplehtmldomparser因为它适合我的应用程序.... – 2013-03-21 12:42:05

回答

5

我相信你会通过你的第一组结果要循环,找到所有span元素和每个跨度元素的outertext设置为空字符串,从而去除整个HTML元素。

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

    echo $value->innertext; 
} 
+0

工作welll ...谢谢 – 2013-03-21 13:06:22

0

简单的HTML DOM解析器将工作:

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

不工作的家伙....任何其他的选择? – 2013-03-21 13:02:59

0

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

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