正如标题所说,我想一个DOM元素的textContent更改为跨度,使用PHP。就像从这个:
<div class="dummy">Here is my content.</div>
为此:
<div class="dummy"><span class="newSpan"></span></div>
我试着设置为空喜欢的内容
$sourceDOMElement->nodeValue = ""; //OR
$sourceDOMElement->textContent = "";
但没有工作的某些原因。在此之后,我想一个新的子追加到元素与新的跨度,我想插入。
我怎样才能使这项工作?提前致谢!
您可以设置nodeValue属性,如果你想设置这样一个元素的文本内容
$el = $dom->getElementById('foo');
$el->nodeValue = 'hello world';
这种自动转义<和>,所以你不能插入HTML这样。
这样做u可以一起去:
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>';