Удалить данный тег из HTML-строки без замены - PullRequest
0 голосов
/ 12 апреля 2019

Я бы хотел отфильтровать строку html перед загрузкой в ​​WebView:

Я бы хотел удалить все теги img с параметром:

data-custom:'delete'

Например

<img src="https://..." data-custom:'delete'/>

Как сделать это в Android элегантно (без внешних библиотек, если это возможно)

1 Ответ

1 голос
/ 12 апреля 2019

Я собираюсь перейти к хорошему и простому:

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 и удалить их из документа, а затем сохранить обновленный документ.Хотя вы можете делать это с помощью регулярных выражений, обычно это не очень хорошая идея ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...