Java эквивалент PHP простой HTML DOM Parser - PullRequest
4 голосов
/ 30 мая 2011

Поскольку мне приходится многопоточность, которую я не могу красноречиво решить на PHP, я хотел бы программировать на Java, к сожалению, я не смог найти библиотеку, которая позволила бы мне анализировать HTML DOM так же надежно, быстро и легко, как в PHP Simple HTML DOM Parser. Знаете ли вы альтернативы в Java, которые так просты в использовании?

Ответы [ 3 ]

7 голосов
/ 30 мая 2011

Я перешел с Simple HTML DOM Parser на JSoup , и я вполне доволен этим.

3 голосов
/ 30 мая 2011

Я вижу, что здесь у нас есть две проблемы:

  • Синтаксический анализ HTML, который не может быть правильно сформированным XHTML, который облегчает любой и приятный для анализа.Я бы порекомендовал библиотеку TagSoup , которая может читать некрасивый HTML и создавать правильно сформированный поток StaX, который затем можно использовать в других местах.

  • Создание DOM-представления HTML-документаи иметь дело с этим.Как вы, вероятно, знаете, в JDK существует полноценная реализация XML DOM (org.w3c.dom.*).Но я думаю, что это не тот тип API, который вы искали.Как насчет DOM4J или старше JDOM , который может обернуть документ JDK, и вы можете наслаждаться простым в использовании API?

0 голосов
/ 30 мая 2011

Я успешно использовал TagSoup в качестве парсера SAX для заполнения документов DOM4J, которые я затем запрашиваю с помощью XPath.Мне потребовалось некоторое время, чтобы проработать заклинания - (Скала, но я уверен, что вы можете конвертировать):

parserFactory = new org.ccil.cowan.tagsoup.jaxp.SAXFactoryImpl
val reader = new SAXReader(parserFactory.newSAXParser.getXMLReader)
val doc = reader.read(new InputSource(new StringReader(page)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...