Возможность разбора HTML-документа и построения дерева DOM (Java) - PullRequest
1 голос
/ 16 сентября 2009

Возможно ли это и какие инструменты можно использовать для анализа html-документа в виде строки или из файла, а затем для создания дерева DOM, чтобы разработчик мог пройти по дереву через некоторый API.

Например:

DomRoot = parse("myhtml.html");

for (tags : DomRoot) {
}

Примечание: это документ HTML, а не XHtml.

Ответы [ 5 ]

4 голосов
/ 16 сентября 2009

Вы можете использовать TagSoup - это SAX-совместимый синтаксический анализатор, который может чистить искаженный контент, такой как HTML, с общих веб-страниц в правильно сформированный XML.

This is <B>bold, <I>bold italic, </b>italic, </i>normal text

gets correctly rewritten as:

This is <b>bold, <i>bold italic, </i></b><i>italic, </i>normal text.
2 голосов
/ 16 сентября 2009

JTidy должен позволять вам делать то, что вы хотите.

Использование довольно простое, но разбор настраивается. e.g.:

InputStream in = ...;
Tidy tidy = new Tidy();
// configure Tidy instance as required
...
...
Document doc = tidy.parseDOM(in, null);
Element root = doc.getDocumentElement();

JavaDoc размещен здесь .

1 голос
/ 16 сентября 2009

Вы можете взглянуть на NekoHTML , библиотеку Java, которая обеспечивает максимальную очистку и балансировку тегов в вашем документе. Это простой способ разбора искаженного файла HTML (или недействительного XML).

Распространяется по лицензии Apache 2.0.

0 голосов
/ 16 сентября 2009

Существует несколько инструментов с открытым исходным кодом для анализа HTML с Java.

Проверка http://java -source.net / open-source / html-парсеры

Также вы можете проверить ответы на этот вопрос: Чтение HTML-файла в дерево DOM с использованием Java Это почти то же самое ...

0 голосов
/ 16 сентября 2009

HTML Parser поддерживает преобразование HTML в XML. Затем вы можете построить дерево DOM, используя обычный набор инструментов Java.

...