为什么在DOMNodeList迭代后为子节点返回类DOMText?

时间:2011-03-27 07:32:31

标签: php dom

$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?

1 个答案:

答案 0 :(得分:1)

您的查询要求//text()的文本节点。 :)

DOMText是一个专门的DOMNode,它几乎是每个DOM相关对象的基础对象(除了DOMXPath,我相信,这是有意义的)

DOMText的对象层次结构实际上是遵循的;

DomNode  
 - DOMCharacterData
   - DomText

您可以通过查看the docs

了解有关详情