DOM change element content

tomsseisums picture tomsseisums · Aug 12, 2011 · Viewed 13.1k times · Source

How does one change the element content with PHP DOM functions?

In depth... I've queried my element, modified attributes and now want to change the content of it, how can I do this?

Answer

lonesomeday picture lonesomeday · Aug 12, 2011

Set the nodeValue property if you want to set text content of an element:

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

Note that this automatically escapes < and >, so you can't insert HTML like this. For that you'll have to do something like DOMDocument::createDocumentFragment:

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