Os cuento la situación, para que lo entendáis mejor:
En un String obtengo un código html que no está bien formado (quiero decir que puede haber etiquetas que faltan, por ejemplo </p>, que antes nadie las ponía). Tengo el siguiente método para pasar un String a org.w3c.dom.Document:
Código:
Un caso concreto es cuando le meto el siguiente HMLT (solo pongo un trocito):public static Document String2Document(String str) throws Exception { DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); Document dok = builder.parse(new InputSource(new StringReader(str))); return dok; }
Código:
Al parsearlo con la función, salta una excepción, por culpa de la etiqueta </SCRIPT>, diciendo que el elemento "script" debe terminar con la etiqueta </script>:<html> <head> <title>Corpus arakatzailea</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link rel="stylesheet" href="/klasikoak/kg.css"> <script LANGUAGE="JavaScript1.2" SRC="/klasikoak/scripts/menu.js"></SCRIPT> </head> <body> ..... </body> </html>
Código:
No quiero ni pensar lo que pasará con las demás etiquetas mal balanceadas.[Fatal Error] :1:235: The element type "script" must be terminated by the matching end-tag "</script>". org.xml.sax.SAXParseException: The element type "script" must be terminated by the matching end-tag "</script>". at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source) at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source) at UtilidadesXML.String2Document(UtilidadesXML.java:56) at HTML2Document.main(HTML2Document.java:15)
Alguien me puede ayudar??
Gracias de antemano.