You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PHP DOM XPath获取匹配节点自身及内部完整HTML内容?

实现方法

你可以直接使用DomDocument类自带的saveHTML()方法实现需求,该方法支持传入指定DOM节点作为参数,直接返回该节点包含标签、属性、子元素在内的完整HTML内容,替代你之前使用nodeValue拿纯文本的逻辑即可。

修改后可直接运行的代码

$dom = new DomDocument('1.0', 'UTF-8');
$str = file_get_contents("StudentList.html");
if ($dom->loadHTML(mb_convert_encoding($str, 'HTML-ENTITIES', 'UTF-8')) == true) {
    $xpath = new DomXPath($dom);
    $nodeList = $xpath->query("//div[@class='tableHeader']");
    $node = $nodeList->item(0);
    // 输出完整节点HTML
    echo $dom->saveHTML($node);
}

额外说明

如果按照你给出的预期输出需要排除<div class="studentRow"></div>部分,你可以调整XPath查询规则直接匹配<div class="header">的父节点,或者先移除tableHeader节点下的studentRow子节点后再输出HTML:

// 移除不需要的studentRow节点示例
$studentRow = $xpath->query("./div[@class='studentRow']", $node)->item(0);
$node->removeChild($studentRow);
echo $dom->saveHTML($node);

注意:saveHTML()传入节点参数的特性需要PHP 5.3.6及以上版本支持,目前主流运行环境均满足该版本要求。

内容的提问来源于stack exchange,提问作者i need help

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 15:06:01