Pregunta

¿Cuál es la forma más fácil en Java para recuperar todos los elementos con un determinado tipo en una página HTML con formato incorrecto? Por eso quiero hacer algo como esto:

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
}
¿Fue útil?

Solución

HtmlCleaner es sin duda uno de los mejores programas de análisis de HTML que hay cuando se trata de lidiar con (un poco) HTML con formato incorrecto.

La documentación es aquí con algunos ejemplos de código; que está básicamente buscar método getElementsByName().

Tome un vistazo a Comparación de los analizadores HTML Java si estás pensando en otras bibliotecas.

Otros consejos

He tenido éxito usando tagsoup . Aquí está una breve descripción de su página de inicio:

  

Esta es la página principal de TagSoup, un analizador SAX-compatible escrita en Java que, en lugar de analizar bien formado o XML válido, analiza HTML tal como se encuentra en la naturaleza: pobre, desagradable y brutal, aunque muy a menudo lejos de ser corto. TagSoup está diseñado para personas que tienen que procesar este material utilizando una cierta apariencia de un diseño racional aplicación. Al proporcionar una interfaz SAX, que permite a las herramientas XML estándar que deben aplicarse a incluso el peor HTML. TagSoup también incluye un procesador de línea de comandos que lee los archivos HTML y puede generar ya sea HTML o XML limpia bien formada que es una aproximación cercana a XHTML.

JTidy .

  

JTidy es un puerto de Java de HTML Tidy, una   comprobador de sintaxis HTML y bastante   impresora. Al igual que su primo no Java,   JTidy se puede utilizar como una herramienta para   limpieza incorrecto HTML y defectuoso.   Además, JTidy proporciona un DOM   interfaz con el documento que se   siendo procesado, lo que efectivamente   te hace capaz de utilizar JTidy como DOM   analizador de HTML en el mundo real.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top