2017-02-03 2 views
1

Мне нужно разобрать веб-сайт, используя Codename One. Существует класс под названием HTMLParser (https://www.codenameone.com/javadoc/com/codename1/ui/html/HTMLParser.html), но он не работает. По крайней мере, я не могу заставить его бежать.Разбор HTML в Codename Один без использования XML-анализатора

В качестве альтернативы я попытался использовать XML Parser, который с удовольствием работал. Но при анализе HTML с ним я столкнулся с проблемами, связанными с тегами, отличными от XHTML, такими как breaks (br). Они меняют мой HTML-код, и поэтому я не могу разобрать его предсказуемым.

Есть ли способ заставить HTML Parser работать или каким-либо другим способом сделать это?

EDIT: Я решил написать сервлет, выполняющий синтаксический анализ для меня, используя JSoup. Кажется, это хорошая практика.

ответ

0

Класс HTMLParser использовался устаревшим HTMLComponent. Это должно было быть устаревшим, так как это бесполезно без него.

XMLParser включает в себя все функции синтаксического анализа HTML, встроенные в Codename One. Он должен работать с несоответствующими тегами br, он может быть непоследовательным для таких вещей, как самозакрывающиеся теги и открытые теги, но он все равно должен позволить вам реализовать большинство подобных случаев.

+0

Спасибо за быстрый ответ, но у меня был случай, когда синтаксический анализ сайта был совершенно непоследовательным, и я не мог продолжать дальше. Вот почему я перешел на сервлет. – BullshitPingu

+0

Другим вариантом было бы переносить что-то вроде jsoup. Это нетривиально, но возможно выполнимо. –

+0

Да, я попробовал, но был отложен 450 ошибками, которые затмение сообщало. Они были связаны главным образом с отсутствующим Regex от Java SE. Но поскольку у Codename One есть RE как решение, вы абсолютно правы! – BullshitPingu