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

问题描述 投票:0回答:2

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

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

为此:

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

我试着设置为空喜欢的内容

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

但没有工作的某些原因。在此之后,我想一个新的子追加到元素与新的跨度,我想插入。

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

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

php html dom domdocument
2个回答
1
投票

您可以设置nodeValue属性,如果你想设置这样一个元素的文本内容

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

这种自动转义<和>,所以你不能插入HTML这样。

这样做u可以一起去:

DOMDocument::createDocumentFragment:

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

1
投票

尝试这个

$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>';
© www.soinside.com 2019 - 2024. All rights reserved.