Как использовать java-библиотеку «HTML Parser» для удаления всех тегов ?

Мне нужно выполнить несколько действий в html-файле, например, удаление определенного тега или удаление атрибутов. Я решил использовать HTML Parser, java-библиотеку: http://htmlparser.sourceforge.net/

Прежде всего, я хочу удалить все tags стиля. Мне удалось получить NodeList, содержащий все tags стилей, выполнив следующие действия:

Parser parser = new Parser (url); NodeList list = parser.parse (null); NodeList styles = list.extractAllNodesThatMatch (new TagNameFilter ("STYLE"), true); 

Теперь я не знаю, как удалить атрибуты стиля из всего списка узлов. Нужно ли мне отображать весь список?

После этого я хочу иметь возможность удалить все атрибуты внутри тегов или удалить только атрибуты alt, например. Есть ли способ, который делает это автоматически?

Из документации Parser возвращает список деревьев, содержащий все ваши узлы html (подумайте о парсере как корневом узле большого дерева Node и каждый «уровень» этого дерева является NodeList ).

Вы можете перебирать рекурсивно дерево, проверять тип каждого узла на StyleTag и удалять его из соответствующего NodeList когда это применимо. Продолжайте спускаться в дерево рекурсивно, пока не посетите все его узлы.

NodeTreeWalker – ваш друг и может помочь вам с рекурсивным NodeTreeWalker дерева.

jsoup – еще одна приятная альтернатива, которая имеет более простой интерфейс (см. этот другой вопрос ).