HtmlAgility 라이브러리를 수정하기 위해 어떤 오류가 발생할 수 있습니까? 나는 내 자신의 경험으로 다음과 같이 누락 된 태그를 닫을 수 있음을 안다.
<car>Nissan</car
Load 또는 LoadHtml을 수행하면 다음과 같이 수정됩니다.
<car>Nissan</car>
나는 또한 ParseError 컬렉션이 Reason, Stream 등을 결정할 수 있다는 것을 안다.
오류 목록 (또는 자신의 경험을 통해 알 수 있습니까?) 오류 수정에 대한 HtmlAgility와 HtmlAgility로 해결할 수없는 오류가 얼마나 있습니까?
역사적으로, Html Agility Pack은 Html을 수정 하도록 설계된 것이 아니라 오히려이 Html에 오류가 있어도 다시로드, 수정 및 저장 할 수 있습니다.
이는 일반적으로 질문에 표시되는 것과 같은 브라우저에서 자동으로 수정되는 오류를 수정한다는 것을 의미합니다. 오류 목록은 실험적으로 결정되었으며, 소스에 대한 깊은 통찰력을 찾아 볼 수 있습니다. 실제로 2000 년에서 2001 년 사이에 다시 설계되었으므로 해당 지역에서 일이 바뀔 수도 있습니다 :-)
ParseErrors 컬렉션에는 코드가있는 HtmlParseError 개체가 포함됩니다. 이 코드는 다음과 같이 문서화 된 enum입니다.
/// 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
또한 중첩 오류가 감지 될 때 LI, TR, TH, TD 태그를 수정할 수있는 HtmlDocument (기본값은 false)에 OptionFixNestedTags
속성이 있습니다. 필요한 닫는 TD가없는 닫는 TR을 발견하면 자동으로 닫힙니다. 다시 말하지만, 이것은 정확히 브라우저가 잘못된 HTML로 처리 할 것입니다.