java - 从 html 字符串中删除给定标签而不替换
问题描述
我想在将它加载到 WebView 之前过滤一个 html 字符串:
我想用参数删除所有 img 标签:
data-custom:'delete'
在示例中
<img src="https://..." data-custom:'delete'/>
如何以优雅的方式在 Android 中执行此操作(如果可能,不使用外部库)
解决方案
我要去一个漂亮而简单的:
String element = "<img src='https://...' data-custom:'delete'/>";
String attributeRemoved = element.replaceAll("data-custom:['|\"].+['|\"]", "");
根据评论更新
如果要删除整个标签,可以这样做:
String elementRemoved = element.replaceAll("<.*data-custom:['|\"].+['|\"].*>", "");
如果您只想为<img>
标签执行此操作,您可以执行以下操作:
String imgElementRemoved = element.replaceAll("<img.*data-custom:['|\"].+['|\"].*>", "");
一种更可靠的方法是将 HTML 解析为 XML 文档并使用 XPath 查找所有具有 data-custom 属性的元素并将它们从文档中删除,然后保存更新的文档。虽然你可以用正则表达式来做这些事情,但这通常不是一个好主意......
推荐阅读
- sql - 在单个查询中从 SQL 中的同一列中选择最大值和最小值
- jmeter - jMeter如何重新执行CSV Data Set Config
- c# - WebForms ListBox - 如果 ListBox 已经包含项目,则添加项目不起作用
- python - python中的uart通信读取错误
- flutter - 如何在 Flutter 中为不同的小部件使用相同的 BLoC?
- git - 我不明白使用 git diff 的文件中的差异
- sql - 在 TSQL、Azure 数据库中捕获服务主体的名称而不是它的 ID
- python - Python如何在文件中搜索特定字符串
- android - Cordova 在为 ionic android 添加平台时遇到错误
- python - 拆分和重组 TensorFlow 数据集