Pergunta

O que é a maneira mais fácil em Java para recuperar todos os elementos com um determinado tipo em uma página HTML mal formado? Então, eu quero fazer algo parecido com isto:

public static void main(String[] args) {
    // Read in an HTML file from disk
    // Retrieve all INPUT elements regardless of whether the HTML is well-formed
    // Loop through all elements and retrieve their ids if they exist for the element
}
Foi útil?

Solução

HtmlCleaner é sem dúvida um dos melhores analisadores HTML lá fora, quando se trata de lidar com (um pouco) malformado HTML.

A documentação é aqui com alguns exemplos de código; você está basicamente procurando método getElementsByName().

Dê uma olhada Comparação de analisadores de Java HTML se você está pensando em outras bibliotecas.

Outras dicas

Eu tive sucesso usando TagSoup . Aqui está uma breve descrição de sua home page:

Esta é a home page da TagSoup, um parser SAX-compliant escrito em Java que, em vez de analisar bem formado ou XML válido, parses HTML, uma vez que é encontrado na natureza: pobre, desagradável e brutal, embora muitas vezes longe de ser curto. TagSoup é projetado para pessoas que têm de processar este material usando alguma aparência de um desenho racional aplicação. Ao fornecer uma interface SAX, ele permite que ferramentas XML padrão a ser aplicado ao mesmo o pior HTML. TagSoup também inclui um processador de linha de comando que lê arquivos HTML e pode gerar tanto HTML limpa ou XML bem formado que é uma aproximação para XHTML.

Verifique JTidy .

JTidy é uma porta de Java do HTML Tidy, uma HTML sintaxe verificador e bonita impressora. Como seu primo não-Java, JTidy pode ser usado como uma ferramenta para limpeza de HTML mal formado e com defeito. Além disso, o JTidy fornece um DOM interface com o documento que é a ser processado, o que efectivamente torna capaz de usar JTidy como um DOM analisador de HTML no mundo real.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top