php - 如何去除没有 ID 和 Class 的元素的 html 标签
问题描述
长话短说!我需要删除所有没有设置 ID 和 Class 的 SPAN 标签。我发现 DOMXPath 查询选择器有效,但我不知道如何删除标签并保持文本不变。
注意 first foreach
: firstforeach
是循环语句,所以我需要将所有处理后的值返回到$splited_sentences
数组中。
foreach ($splited_sentences as $sentence_key => $sentence_value) {
$html_dom = Html::load($sentence_value);
$xpath = new DOMXPath($html_dom);
foreach ($xpath->query('//span[not(@id) and not(@class)]') as $element_key => $element) {
// Not working Idea, all commented code is just idea to represent needed outcome:
// $just_text = stip_html($element);
// $splited_sentences[$sentence_key] = str_replace($element, $just_text);
}
}
解决方案
您可以使用 strip_tags() 删除任何 html 标签尝试以下代码:
foreach ($splited_sentences as $sentence_key => $sentence_value) {
$html_dom = Html::load($sentence_value);
$xpath = new DOMXPath($html_dom);
foreach ($xpath->query('//span[not(@id) and not(@class)]') as $element_key => $element) {
$just_text = strip_tags ($element);
$splited_sentences[$sentence_key] = str_replace($element, $just_text);
}
}
推荐阅读
- python-3.x - 如何从 python 获取有关 Spark 作业和阶段的数据
- javascript - 在 Google Sheets Scripts 中,如何将带有两个数组变量的值设置为两列
- jquery - 如何在 Scatter Google Charts 中显示两种不同的颜色?
- c# - “存储”任务以供以后完成
- google-cloud-platform - 如何使用 Google Cloud Storage 在 CORS json 文件中设置多个来源?
- r - R plot3d color gardient传奇
- javascript - 合并和求和数组对象Javascript
- asp.net - HTTPS 安全性受到 ASP.NET Ajax 客户端框架的影响
- amazon-web-services - 将 www 流量重定向到 nginx AWS Elastic Beanstalk 中的非 www
- wordpress - 将外部 URL 添加到 WordPress 的 WooCommerce 类别