PHP中DOMDocument操作节点分三步:创建节点(createElement)、设置内容或属性(textContent/setAttribute)、插入目标位置(appendChild等)。

PHP 的 DOMDocument 创建和插入新节点,核心是三步:创建节点 → 设置内容或属性 → 插入到目标位置。下面直接说清楚怎么操作,不绕弯。
创建新元素节点
用 createElement() 创建标签,比如想加一个 <p> 或 <div>:
$doc = new DOMDocument();
$doc->loadHTML('<body></body>');
// 创建 <p> 标签
$p = $doc->createElement('p');
// 可选:设置文本内容(相当于 innerText)
$p->textContent = '这是新段落';
// 也可用 createTextNode() + appendChild 组合(更灵活)
创建带属性的节点
创建完元素后,用 setAttribute() 加属性:
$link = $doc->createElement('a');
$link->setAttribute('href', 'https://example.com');
$link->setAttribute('class', 'btn');
$link->textContent = '点击这里';
插入到文档中(关键!)
插入必须指定父节点,常见方式有四种:
立即学习“PHP免费学习笔记(深入)”;
- appendChild():加到末尾(最常用)
- insertBefore():插在某个子节点前面
- replaceChild():替换已有节点
- prependChild()(PHP 8.2+):加到开头(旧版需手动处理)
示例:把上面的 <p> 插入到 <body> 里:
// 先找到 body(注意:loadHTML 后 body 是子节点之一)
$body = $doc->getElementsByTagName('body')->item(0);
if ($body) {
$body->appendChild($p); // ✅ 成功插入
}
插入文本或 HTML 片段(进阶)
如果要插入带标签的 HTML 字符串(比如 <span>加粗</span>),不能直接用 textContent,得用 createDocumentFragment():
$fragment = $doc->createDocumentFragment();
$fragment->appendXML('<span style="color:red">红色文字</span>');
$p->appendChild($fragment); // 这样才能解析 HTML
注意:appendXML() 要求传入的是格式良好的 XML/HTML 片段,否则会警告或失败。
基本上就这些。记住:节点得先“生出来”,再“安家落户”,中间别漏了找父节点这一步。











