2011-06-19 102 views

回答

18

只要你能够影响DOM,你可以删除span

$span = $div->getElementsByTagName('span')->item(0); 
$div->removeChild($span); 

$nodeValue = $div->nodeValue; 

或者,只需访问文本节点$div

foreach($div->childNodes as $node) { 

    if ($node->nodeType != XML_TEXT_NODE) { 
     continue; 
    } 
    $nodeValue = $node; 
} 

如果你结束了更多的文本节点,并只希望首先,你可以break后的$nodeValue第一任务。

26

您可以直接使用XPath访问DOMText节点:

$xpath = new DOMXPath($dom_document); 
$node = $xpath->query('//div/text()')->item(0); 
echo $node->textContent; // text