2014-06-23 41 views
4

我使用PHP簡單的HTML DOM類來解析HTML內部文本。 我想id="content"內的文本選擇DIV,但是當我打電話$selecrot->plaintext,它也返回子格文本PHP簡單的HTML DOM只選擇沒有孩子INNE rtext

樣本HTML

<div id="content"> 
Hello World. 
<div id="sub-content1"> 
Text I don't want to select. 
</div> 
<div id="sub-content2"> 
Text I don't want to select 
</div> 
</div> 

示例代碼

//suppose $html contains above html 
$selector = $html->find("div#content", 0); 
echo $selector->innertext; 
//it outputs "Hello World. Text I don't want to select. Text I don't want to select" 
//but 

我只希望 「Hello World」 的

+0

這個問題是不相關的jQuery。不重複的問題 – user2717054

回答

2
include_once('simple_html_dom.php'); 
$html = new simple_html_dom(); 

$text = '<div id="content"> 
Hello World. 
<div id="sub-content1"> 
Text I don\'t want to select. 
</div> 
<div id="sub-content2"> 
Text I don\'t want to select 
</div> 
</div>'; 

$html->load($text); 
$selector =$html->find("div#content",0)->find("*"); 
foreach($selector as $node){ 
$node->outertext = ''; 
} 
$html->load($html->save()); 
$selector =$html->find("div#content",0); 
echo $selector->innertext; 
+1

提供一些交代 – kamesh

+0

1步:找到選擇的所有節點,第2步:NULL的所有節點,第3步:重新加載簡單的HTML DOM,之後第3步選擇的內容是「

Hello World.
」 –

+0

我編輯你的代碼接受 – kamesh