php - 通过 DOMDocument 获取具有子节点的节点的内容

标签 php html xml parsing domdocument

我有以下 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',这不是我想要得到的

最佳答案

我更喜欢 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;
}

关于php - 通过 DOMDocument 获取具有子节点的节点的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2966868/

相关文章:

php - 如何将存储在 PHP 中的不同宽度应用于 3 个相同的 DIV(使用相同的 CSS)

用于 DES/CBC/PKCS5Padding 加密和解密的 PHP 脚本

sql - 将具有相同标签的 XML 值分隔到不同的行 SQL Server

xml - ColdFusion XML 特殊/外来字符丢失

xml - 使用 xsd 限制属性值

php - 推进类重建后 "Base Query"内的多个函数声明

html - 将一排 div 在容器中居中

html - 无法删除边框轮廓

javascript - 如何正确地为酒吧滑动制作动画?

php - Zend Framework - 数据库表单例