HtmlAgility ParseErrors属性

use*_*008 0 html-agility-pack

我可以期待修复HtmlAgility库有哪些错误?我根据自己的经验知道它可以关闭一个缺失的标签,例如:

<car>Nissan</car
Run Code Online (Sandbox Code Playgroud)

何时执行Load或LoadHtml,它将修复它,如:

<car>Nissan</car>
Run Code Online (Sandbox Code Playgroud)

我也知道ParseErorrs集合可以确定Reason,Stream等.

是否存在错误列表(或者您可以根据自己的经验判断)HtmlAgility修复错误的可靠性如何以及HtmlAgility无法解决哪些错误?

Sim*_*ier 5

从历史上看,Html Agility Pack从未设计用于修复 Html,而是能够加载,修改和保存它,即使此Html有错误.

这意味着它将修复一般由浏览器自动修复的错误,例如您在问题中显示的错误.错误列表已通过实验确定,您可以浏览源代码以获得有关它的深入见解.话虽这么说,它实际上是在2000/2001年设计的,所以事情可能在那个地区发生了变化:-)

ParseErrors集合将包含带代码的HtmlParseError对象.代码是一个记录的枚举:

    /// 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
Run Code Online (Sandbox Code Playgroud)

OptionFixNestedTagsHtmlDocument上还有一个属性(默认值为false),它能够在检测到嵌套错误时修复LI,TR,TH,TD标记.这意味着如果它在没有所需的关闭TD的情况下检测到关闭TR,它们将自动关闭.同样,这正是浏览器将对格式错误的Html做的事情.