PHP DOMDocument用HTML字符串替换DOMElement子代
发布时间:2020-12-13 13:37:26 所属栏目:PHP教程 来源:网络整理
导读:使用 PHP我试图从WYSIWYG编辑器传递一个HTML字符串,并用新的HTML替换预加载的HTML文档中的元素的子元素. 到目前为止,我正在加载文档,标识我想要通过ID更改的元素,但是将HTML转换为可放置在DOMElement中的内容的过程正在逃避我. libxml_use_internal_errors(t
使用
PHP我试图从WYSIWYG编辑器传递一个HTML字符串,并用新的HTML替换预加载的HTML文档中的元素的子元素.
到目前为止,我正在加载文档,标识我想要通过ID更改的元素,但是将HTML转换为可放置在DOMElement中的内容的过程正在逃避我. libxml_use_internal_errors(true); $doc = new DOMDocument(); $doc->loadHTML($html); $element = $doc->getElementById($item_id); if(isset($element)){ //Remove the old children from the element while($element->childNodes->length){ $element->removeChild($element->firstChild); } //Need to build the new children from $html_string and append to $element }
如果HTML字符串可以解析为XML,则可以执行此操作(清除所有子节点的元素后):
$fragment = $doc->createDocumentFragment(); $fragment->appendXML($html_string); $element->appendChild($fragment); 如果$html_string无法解析为XML,则会失败.如果是这样,你将不得不使用loadHTML(),它不那么严格 – 但它会在片段周围添加你必须剥离的元素. 与PHP不同,Javascript具有innerHTML属性,允许您非常轻松地执行此操作.我需要类似于项目的东西,所以我扩展了PHP的DOMElement以包含类似Javascript的innerHTML访问. 有了它,您可以访问innerHTML属性并像在Javascript中一样进行更改: echo $element->innerHTML; $elem->innerHTML = '<a href="http://example.org">example</a>'; 资料来源:http://www.keyvan.net/2012/11/php-domdocument-replace-domelement-child-with-html-string/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |