2011-03-27 32 views
1
$html = 'foo blah <a href="">foo bar</a> blah <a href="">foo</a> blah foo'; 
$dom = new DOMDocument(); 
$dom->loadHtml($html); 

$xpath = new DOMXPath($dom); 
$nodes = $xpath->query('//text()'); 
echo get_class($nodes); 
foreach($nodes as $node) { 
    echo '<br />'; 
    echo get_class($node) . ':'; //look here 
    echo $node->wholeText; 
} 

爲什麼每個$節點的類類型DOMText?爲什麼在DOMNodeList迭代之後,DOMText類返回childrens?

+0

這不是更多地瞭解這一點。您在迭代中使用'$ node'而不是'$ nodes'。 – 2011-03-27 08:01:44

+0

@fire ..我編輯的問題是清楚的。 – danidacar 2011-03-27 08:09:23

回答

1

您的查詢是要求文本節點//text()。 :)

一個DOMText是一個專門的DOMNode,這反過來是幾乎每一個DOM對象相關的基本對象(除DOMXPath,我相信,這是有道理的)

的一個DOMText對象分層實際上是其次;

DomNode 
- DOMCharacterData 
    - DomText 

可以通過檢查the docs

相關問題