Pregunta

Estoy tratando de cargar un pedazo de (posiblemente) incorrecto HTML en un objeto XMLDocument, pero falla con XMLExceptions ... ya que hay etiquetas de apertura / cierre adicionales, y las etiquetas XML mal formados como <img > en lugar de <img />

¿Cómo consigo el XML para analizar con todos los errores en los datos? ¿Hay alguna validador XML que puedo aplicar antes del análisis, para corregir estos errores? O que el manejo de la excepción de análisis lo que pueda ser analizada?

¿Fue útil?

Solución

El HTML agilidad Paquete será analizar HTML, en lugar de XHTML, y es muy indulgente. El modelo de objetos será familiar si ha usado XmlDocument.

Otros consejos

Es posible que desee revisar la respuesta a esta pregunta, .

Básicamente en algún lugar entre un puerto de .NET BeautifulSoup y el paquete de agilidad HTML hay una manera.

Es poco probable que usted será capaz de construir un XmlDocument que tiene este nivel de la estructura con formato incorrecto. XmlDocument (que yo sepa) requiere que el contenido XML se adhieren a la anidación y la sintaxis correcta de cierre.

Sin embargo, se sospecha que podría analizar esto con un XmlReader lugar. Todavía puede lanzar excepciones si se encuentran ciertos errores flagrantes, pero de acuerdo a la documentación de MSDN, que al menos puede revelar la localización de los errores.

Si sólo se trata de HTML, no es el HTML agilidad paquete , que puede servir a sus propósitos.

En función ont necesidades específicas, es posible que pueda usar HTML Tidy para la limpieza del documento, a continuación, importarlos utilizando el objeto XMLDocument.

Lo que estamos tratando de hacer es muy difícil. HTML no se puede analizar usando un analizador XML ya XML es estricta y HTML no lo es. Si ese fuese compatible con XHTML HTML (HTML como XML), a continuación, un analizador XML sería analizar el código HTML sin ningún problema.

Es posible que desee para ver si hay algún HTML a XHTML convertidores por ahí, si realmente desea utilizar un analizador XML para HTML.

En otras palabras, me he encontrado con un analizador XML que maneja XML malformado ... No están diseñados para aceptar marcado suelto como HTML (por una buena razón, también :))

No se puede cargar XML mal formado en un XmlDocument.

Consulte el HTML agilidad Paquete en CodePlex

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