Поиск элементов HTML по идентификатору в коде Java - PullRequest
0 голосов
/ 15 декабря 2011

Мне интересно, есть ли у кого-нибудь опыт извлечения элементов по идентификатору для заданной строки html быстрым способом.Я пишу метод, который принимает два аргумента:

public String getFilteredHtml(String html, Set<String> ids)

Метод будет возвращать сцепленный html элементов, соответствующих переданным идентификаторам. В настоящее время я использую JSoup для выполнения этого путем анализа html в документеи либо перебирая идентификаторы и добавляя результат document.getElementById, либо используя селектор, который выглядит как [id=id1],[id=id2] и т. д., который отлично работает с сопоставимой производительностью между двумя.

Однако я не мог помочьно обратите внимание, что если при разборе html-документа сохранить карту, содержащую String id> Element, поиск будет намного быстрее.Кто-нибудь знает библиотеку, которая имеет эту функциональность, или способ реализовать ее самостоятельно?Или какие-нибудь другие способы, которые могли бы сделать это быстрее?

1 Ответ

0 голосов
/ 15 декабря 2011

Вы можете использовать синтаксический анализатор HTML на основе SAX и создавать карту во время анализа документа. Например, NekoHTML или TagSoup . Я не уверен, насколько быстрее это будет, хотя вам придется тестировать.

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