我有以下html:
<html ><body >Body text <div >div content</div></body></html>
如何在没有嵌套<div>
的情况下获取正文内容?
我需要获取“正文”,但不知道如何做到这一点。
运行结果
$domhtml = DOMDocument::loadHTML($html);
print $domhtml->getElementsByTagName('body')->item(0)->nodeValue;
是'Body textdiv content',这不是我想要的
答案 0 :(得分:5)
我更喜欢DOMXPath这样的问题。它非常灵活
$domhtml = DOMDocument::loadHTML($html);
$xpath = new DOMXPath($domhtml);
$query="/html/body/text()"; //gets all text nodes that are direct children of body
$txtnodes = $xpath->query($query);
foreach ($txtnodes as $txt) {
echo $txt->nodeValue;
}
答案 1 :(得分:2)
$domhtml = DOMDocument::loadHTML($html);
print $domhtml->getElementsByTagName('body')->item(0)->textContent;
答案 2 :(得分:0)
基于php.net的评论这应该适合您:
$domhtml = DOMDocument::loadHTML($html);
print $domhtml->getElementsByTagName('body')->firstChild->nodeValue;