HtmlAgilityPack 및 HtmlDecode

html-agility-pack

문제

현재 HtmlAgilityPack을 콘솔 응용 프로그램과 함께 사용하여 웹 사이트를 다 쳤습니다. html이 인코딩 ' 와 같은 인코딩 된 문자를 반환 ' ) 데이터베이스에 내용을 저장하기 전에 디코딩해야합니다.

HttpUtility.HtmlDecode를 사용하지 않고도 HtmlAgilityPack을 사용하여 반환 된 HTML을 디코딩 할 수 있습니까? 가능한 경우 내 콘솔 응용 프로그램에 System.Web을 추가하지 않도록합니다.

수락 된 답변

Html Agility Pack에는 HtmlEntity 라는 유틸리티 클래스가 있습니다. 그것은 다음과 같은 서명을 가진 정적 메쏘드를 가지고 있습니다 :

    /// <summary>
    /// Replace known entities by characters.
    /// </summary>
    /// <param name="text">The source text.</param>
    /// <returns>The result text.</returns>
    public static string DeEntitize(string text)

&nbsp; 와 같은 잘 알려진 항목과 &#039; 와 같은 인코딩 된 문자를 지원합니다 &#039; 게다가.


인기 답변

2 센트를 추가하기 만하면됩니다. StopWatch 클래스를 사용하여 성능 테스트를 실시한 결과 HttpUtility.HtmlDecodeDeEntitize 메서드보다 약 15-20 % 빠르다 는 것을 DeEntitize . 또한 DeEntitize 에는 몇 가지 버그가 있습니다 (위의 주석 참조).

그래서 아마도 System.Web을 참조하는 것은 결국 그렇게 나쁘지 않습니다.

이미 ".NET full"(가벼운 버전 인 ".NET Client Profile"과 반대)을 대상으로하는 앱을 작성한다면 System.Web을 참조 할 것입니다.



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