正如标题所述,我想使用PHP将DOM元素的textContent更改为span。像这样:
<div class="dummy">Here is my content.</div>
对此:
<div class="dummy"><span class="newSpan"></span></div>
我试图将内容设置为空
$sourceDOMElement->nodeValue = ""; //OR
$sourceDOMElement->textContent = "";
但是由于某种原因,任何一个都不起作用。此后,我想向新元素添加一个新的子元素。
我该如何进行这项工作? 预先感谢!
答案 0 :(得分:1)
如果要设置这样的元素的文本内容,则可以设置nodeValue属性
$el = $dom->getElementById('foo');
$el->nodeValue = 'hello world';
这会自动转义<和>,因此您不能插入这样的HTML。
因此,您可以使用:
DOMDocument::createDocumentFragment:
$frag = $dom->createDocumentFragment();
$frag->appendXML('<h1>foo</h1>');
$el->appendChild($frag);
答案 1 :(得分: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>';