2011-03-27 26 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

相关问题