HtmlAgility ParseErrors 속성

html-agility-pack

문제

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로 처리 할 것입니다.




아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.