HtmlAgility ParseErrors Propiedad

html-agility-pack

Pregunta

¿Qué errores puedo esperar para arreglar la biblioteca HtmlAgility? Sé que por mi propia experiencia puede cerrar una etiqueta faltante, como:

<car>Nissan</car

Cuando haga Load o LoadHtml, lo arreglará, como:

<car>Nissan</car>

También sé que la colección ParseErorrs puede determinar Reason, Stream, etc.

¿Hay una lista de errores (o puede decir de su propia experiencia) qué tan confiable es HtmlAgility para corregir errores y qué errores no pueden ser solucionados por HtmlAgility?

Respuesta popular

Históricamente, Html Agility Pack nunca se diseñó para corregir Html, sino para poder cargarlo, modificarlo y guardarlo, incluso si este Html tiene errores.

Significa que solucionará los errores que en general se corrigen automáticamente por los navegadores, como el que se muestra en su pregunta. La lista de errores se ha determinado de forma experimental, y puede navegar por la fuente para obtener una visión profunda al respecto. Dicho esto, en realidad fue diseñado en 2000/2001 años, por lo que las cosas pueden haber cambiado en esa área :-)

La colección ParseErrors contendrá objetos HtmlParseError con un código. El código es una enumeración que está documentada:

    /// A tag was not closed.
    TagNotClosed,

    /// A tag was not opened.
    TagNotOpened,

    /// There is a charset mismatch between stream and declared (META) encoding.
    CharsetMismatch,

    /// An end tag was not required.
    EndTagNotRequired,

    /// An end tag is invalid at this position.
    EndTagInvalidHere

También hay una propiedad OptionFixNestedTags en HtmlDocument (el valor predeterminado es falso), que es capaz de corregir las etiquetas LI, TR, TH, TD cuando se detectan errores de anidamiento. Significa que si detecta un TR de cierre sin todo el TD de cierre necesario, se cerrarán automáticamente. Una vez más, esto es exactamente lo que hará el navegador con HTML malformado.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué