php - 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
标签内
解决方案
感谢@NigelRen,找到了一个解决方案,item(0)
从存储在的元素中选择了一个$items
并调用了它appendChild()
$first_mark = $items->item(0);
$first_mark->appendChild($gear);
推荐阅读
- sql - SQL:如何从一个链接到另一个表的表中找到描述值?
- html - 加载时我的网站字体大小会自动更改
- excel - 在统计上创建非线性方程的上限和下限斜率
- python - 使用 Boto 3 将文件从 AWS S3 传输到 SFTP
- wordpress - 如何将 Wordpress 仪表板登录网址更改为网站网址?
- html - 使表格的第一列变粘
- kentico - 我可以根据宏使母版页(Kentico 11 Portal Engine)上的 Doctype 动态化吗?
- c - 如何触发保存文件的创建
- c++ - MOD 1000000007 似乎不正确
- jquery - 点击 div 获取 data-id 的值