htmlagilitypackを使用してhtmlのコメント付きテキストを削除する方法

html-agility-pack

質問

htmlagilitypackライブラリを使用してhtmlのコメント付きテキストを削除することは可能ですか?現在、私はASPからASP.NET MVCへのマイグレーション作業を行っています。そこではRegexを使っていますが、 htmlagilitypackを使って試してみる前にそれを達成することができますか?

受け入れられた回答

HtmlCommentNode型(HTMLコメントを表す)のすべてのノードを見つけ、それをドキュメントから削除することができます。しかし、AgilityPackは<!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;


ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ