Using PHP I'm attempting to take an HTML string passed from a WYSIWYG editor and replace the children of an element inside of a preloaded HTML document with the new HTML.
So far I'm loading the document identifying the element I want to change by ID but the process to convert an HTML to something that can be placed inside a DOMElement is eluding me.
$doc = new DOMDocument();
$element = $doc->getElementById($item_id);
//Remove the old children from the element
//Need to build the new children from $html_string and append to $element
If the HTML string can be parsed as XML, you can do this (after clearing the element of all child nodes):
$fragment = $doc->createDocumentFragment(); $fragment->appendXML($html_string); $element->appendChild($fragment);
If $html_string cannot be parsed as XML, it will fail. If it does, you’ll have to use loadHTML(), which is less strict — but it will add elements around the fragment which you will have to strip.
echo $element->innerHTML; $elem->innerHTML = '<a href="http://example.org">example</a>';