PHP DOMDocument怎么创建和插入一个新节点

12次阅读

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

PHP DOMDocument怎么创建和插入一个新节点

PHP 的 DOMDocument 创建和插入新节点,核心是三步:创建节点 → 设置内容或属性 → 插入到目标位置。下面直接说清楚怎么操作,不绕弯。

创建新元素节点

createElement() 创建标签,比如想加一个

$doc = new DOMDocument(); $doc->loadhtml('');  // 创建 

标签 $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+):加到开头(旧版需手动处理)

示例:把上面的

插入到 里:

// 先找到 body(注意:loadHTML 后 body 是子节点之一) $body = $doc->getElementsByTagName('body')->item(0); if ($body) {     $body->appendChild($p); // ✅ 成功插入 }

插入文本或 HTML 片段(进阶)

如果要插入带标签的 HTML 字符串(比如 加粗),不能直接用 textContent,得用 createDocumentFragment()

$fragment = $doc->createDocumentFragment(); $fragment->appendxml('红色文字'); $p->appendChild($fragment); // 这样才能解析 HTML

注意:appendXML() 要求传入的是格式良好的 XML/HTML 片段,否则会警告或失败。

基本上就这些。记住:节点得先“生出来”,再“安家落户”,中间别漏了找父节点这一步。

text=ZqhQzanResources