Как разобрать и изменить файл HTML в Java

Я делаю проект, в котором мне нужно прочитать файл HTML и определить определенные теги, изменить содержимое тега и создать новый файл HTML. Есть ли библиотека, которая анализирует теги HTML и способна записывать теги обратно в новый файл?


person chai    schedule 11.10.2010    source источник


Ответы (4)



если вы хотите изменить веб-страницу и вернуть измененное содержимое, я думаю, что лучше всего использовать преобразование XSL.
http://en.wikipedia.org/wiki/XSLT

person Igor Konoplyanko    schedule 11.10.2010
comment
Думаю, это было то, чего я с нетерпением ждал. Мне нужно генерировать отчеты и представлять их в формате, который пользователь хотел бы представить. - person chai; 12.10.2010
comment
В настоящее время я использую процессор Xalan, и код работает прекрасно. Вот ссылка на процессор xml.apache.org/xalan-j - person chai; 12.10.2010

Посетите http://jsoup.org, у него есть дружественный API, похожий на dom, для простых задач, которые вам не нужны. для разбора html.

person Victor Ionescu    schedule 11.10.2010

Слишком много парсеров HTML. Вы можете использовать JTidy, NekoHTML или проверьте TagSoup.

Обычно я предпочитаю анализировать XHTML с помощью стандартных парсеров Java XML, но вы не можете сделать это для любого типа HTML.

person ivy    schedule 11.10.2010

Посмотрите на http://java-source.net/open-source/html-parsers для списка библиотек Java, которые анализируют файлы html в объекты Java, которыми можно манипулировать.

Если html-файлы, с которыми вы работаете, имеют правильный формат (xhtml), вы также можете использовать XML-библиотеки в java для поиска определенных тегов и их изменения. Сам ввод-вывод должен обрабатываться конкретными библиотеками, которые вы используете.

Если вы решите анализировать строки вручную, вы можете использовать регулярные выражения для поиска определенных тегов и использовать библиотеки java io для записи в файлы и создания новых html-документов. Но этот метод, так сказать, заново изобретает колесо, потому что вам нужно управлять открытием и закрытием тегов, и все эти вещи обрабатываются уже существующими библиотеками.

person Matt Phillips    schedule 11.10.2010