You can use fragments to set inner HTML:<?php$dom = new DOMImplementation();$document = $dom->createDocument(null, 'html', $dom->createDocumentType('html'));$div = $document->appendChild($document->createElement('div', '<small>test</small> me'));echo $document->saveHTML($div); // <div><small>test</small> me</div>$div = $document->appendChild($document->createElement('div'));$div->nodeValue = '<small>test</small> me';echo $document->saveHTML($div); // <div><small>test</small> me</div>$div = $document->appendChild($document->createElement('div'));$divInner = $document->createDocumentFragment();$divInner->appendXML('<small>test</small> me');$div->appendChild($divInner);echo $document->saveHTML($div);// <div><small>test</small> me</div>?>