首页 > 解决方案 > PHP - 解析 HTML,选择标签,在所选标签内插入另一个 HTML 字符串

问题描述

我正在尝试将 HTML 字符串插入另一个 HTML 元素中,该元素在创建的 DOM 中解析,并从字符串加载 HTML;

这是我的代码:

PHP:

$str = $attributes["description_text"]; // HTML string
$dom = new DOMDocument; // initialize the domdocument
$dom->loadHTML($str); // load our html into the $dom object
$items = $dom->getElementsByTagName('mark'); // retrieving elements by tag

$gear = $dom->createElement('a', "Lorem ipsum dolor sit amet");
$dom->appendChild($gear);
    
$output_dom = $dom->saveHTML();

return '<p>'. $output_dom .'</p>';

HTML($str 内容):

Phasellus eu arcu vestibulum, ultrices massa eu, <mark>TOOLTIP</mark> sodales dui.

期望的结果(a标签内的mark标签):

<p>Phasellus eu arcu vestibulum, ultrices massa eu, <mark>TOOLTIP<a>Lorem ipsum dolor sit amet</a></mark> sodales dui.</p>

电流输出:

<p>Phasellus eu arcu vestibulum, ultrices massa eu, <mark>TOOLTIP</mark> sodales dui.</p> 
<a>Lorem ipsum dolor sit amet</a>

所以现在新字符串附加在整个段落的末尾,而不是mark标签内

标签: phphtmlparsingdom

解决方案


感谢@NigelRen,找到了一个解决方案,item(0)从存储在的元素中选择了一个$items并调用了它appendChild()

$first_mark = $items->item(0);
$first_mark->appendChild($gear);

推荐阅读