Foro sobre Java SE > Etiquetas HTML
HTML no es forzosamente XML. El HTML de las páginas web deriva de SGML y no de XML (que es posterior).
Existe un tipo de HTML llamado xHTML que si debe cumplir en teoría los requisitos de XML (como el cierre de etiquetas vacias, como <p>). Sin embargo la gran mayoria de las web no lo respetan o bien lo implementan sólo parcialmente.
No detallas nada como lo estás haciendo, por lo que te propongo una solución genérica.
Cuando has recogido el html y l tienes en un String, puedes hacer replaces, antes de parsear.
Por ejemplo, puedes hacer un html.replaceAll("<p>", "</p>");
Un saludo
Hola gracias por responder.
Listo, ya hice como indicas, pero tengo un inconveniente,
en el html hay algo asi:
<table>
<tr>
<td> algo</td>
</tr>
</tr>
<tr>
<td> algo</td>
</tr>
</table>
Como hago para validar los tag que estan sobrando, y eliminarlos de inmediato,
Gracias.
Pues como ves la cosa se complica terriblemente. Y seguro que si lo consigues arreglar, luego tendrás otro problema. Eso pasa al enfocar mal el problema desde el principio.
Como te he comentado, HTML no es un XML y no tiene porqué ser XML-Valido.
No detallas que librería utilizas para parsear, pero me parece que no es la adecuada para tratar HTML.
Yo te recomiendo JSoup (http://jsoup.org/), que permite parsear y recorrer el DOM del documento HTML y no se quejará tanto por etiquetas sin cerrar o elementos duplicados.
Un saludo
Hola amigos buenas noches,
Tengo un inconveniente, tengo que hacer una aplicacion que dada una pagina web, debe de obtener el xml, para asi obtener los datos, Cuando intento convertir la URL a xml, me sale un error, donde dice que la etiqueta <p> debe cerrarse, como no soy el propietario de esa pagina, no puede corregir eso, entonces como hago una vez capturada la pagina html, quiero validar las etiquetas html y cerrar las que este sin cerrar, o corregir algun detalle con las etiquetas, claro desde java.
Gracias