【发布时间】:2019-09-03 05:37:42
【问题描述】:
我想在将 html 字符串加载到 WebView 之前对其进行过滤:
我想删除所有带有参数的 img 标签:
data-custom:'delete'
举例
<img src="https://..." data-custom:'delete'/>
如何在 Android 中以优雅的方式做到这一点(如果可能,不使用外部库)
【问题讨论】:
我想在将 html 字符串加载到 WebView 之前对其进行过滤:
我想删除所有带有参数的 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 属性的所有元素并将它们从文档中删除,然后保存更新的文档。虽然您可以使用正则表达式来做这些事情,但这通常不是一个好主意...
【讨论】: