htmlagilitypack을 사용하여 html로 주석 처리 된 텍스트를 제거하려면 어떻게해야합니까?

html-agility-pack

문제

htmlagilitypack 라이브러리를 사용하여 HTML에서 주석 처리 된 텍스트를 제거 할 수 있습니까? 현재 ASP에서 ASP.NET MVC 로의 마이그레이션 작업을하고 있는데 Regex 를 사용하여 htmlagilitypack 을 사용 하여이 작업 을 시도하기 전에이를 달성 할 수 있는지 알고 싶습니다.

수락 된 답변

HtmlCommentNode (HTML 주석을 나타내는) 유형의 모든 노드를 찾아서 문서에서 제거 할 수 있습니다. 그러나 AgilePack은 예를 들어 <!DOCTYPE html> 을 주석 노드로 취급합니다. 따라서 이와 같은 노드는 삭제를 위해 생략해야합니다.

var doc = new HtmlDocument();
doc.LoadHtml(html);
var comments = doc.DocumentNode.DescendantNodes()
    .OfType<HtmlCommentNode>()
    .Where(c=> 
        !c.Comment.StartsWith("<!DOCTYPE", StringComparison.OrdinalIgnoreCase)
    ).ToList();

foreach (var comment in comments)
    comment.Remove();

var result = doc.DocumentNode.InnerHtml;


Related

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