如何将 HTML 元素的文本更改为 PHP 中的另一个元素?

How to change a HTML element's text to another element in PHP?

正如标题所说,我想使用 PHP 将 DOM 元素的 textContent 更改为一个跨度。像这样:

<div class="dummy">Here is my content.</div>

对此:

<div class="dummy"><span class="newSpan"></span></div>

我试过把内容设置为空就好

$sourceDOMElement->nodeValue = ""; //OR
$sourceDOMElement->textContent = "";

但是 none 出于某种原因起作用了。在此之后,我想将一个新的 child 附加到具有我要插入的新跨度的元素。

我怎样才能完成这项工作? 提前致谢!

编辑:Here's my whole code, where I have to do this.

如果你想像这样设置一个元素的文本内容,你可以设置节点值属性

$el = $dom->getElementById('foo');
$el->nodeValue = 'hello world';

这会自动转义 < 和 >,因此您不能像这样插入 HTML。

所以你可以这样做:

DOMDocument::createDocumentFragment:

$frag = $dom->createDocumentFragment();
$frag->appendXML('<h1>foo</h1>');
$el->appendChild($frag);

试试这个

$content = '<div class="dummy">aaaaaaa</div>';
$DOM_inner_HTML = new DOMDocument();
$DOM_inner_HTML->loadHTML( mb_convert_encoding( $content, 'HTML-ENTITIES', 'UTF-8' ) );
$content_node = $DOM_inner_HTML->getElementsByTagName('div')->item(0);
$content_node->textContent  = '<span class="newSpan"></span>';