2013-02-11 48 views
0

我正在使用简单的html dom。我有这个代码:简单的html dom移除元素的错误

<html> 
<div class="one"> 
<div class="two">this is inner text </div> 
<a href="#" class="three">this is inner anchor</a> 
This is outer test 
</div> 
</html> 

我想要取This is outer test只。 这里是我的代码:

$html = file_get_html(SITE_URL.'/forumlist.php'); 
$html->find('.two',0)->outertext = ""; 
$html->find('.three',0)->outertext = ""; 
$html->save(); 
echo $html->find('.one',0)->plaintext; 

和我失望..

+0

你得到了什么错误? – Peon 2013-02-11 08:21:27

+0

我得到了一切..'这是内心的文字,这是内部锚点这是外部测试' – 2013-02-11 08:23:07

回答

1

至于我阅读文档,我不认为你可以说出来像你想像的那么简单(我可能是错行),但你可以手动str_replace删除不需要的字符串:

$string = '<html> 
<div class="one"> 
<div class="two">this is inner text </div> 
<a href="#" class="three">this is inner anchor</a> 
This is outer test 
</div> 
</html>'; 

$html = str_get_html($string); 
echo str_replace(
     array(
      $html->find('.two',0)->plaintext, 
      $html->find('.three',0)->plaintext 
     ), 
     null, 
     $html->find('.one',0)->plaintext 
    ); 

这实际上应该做的伎俩,如果你知道HTML的结构。

+0

非常感谢你@Dainis Abols。它真的帮助了我。干杯。 – 2013-02-11 09:01:50