1

htmlagilitypackライブラリを使用してhtmlのコメント付きテキストを削除することは可能ですか?現在、ASPからASP.NET MVCへの移行作業を行っていますが、それらにはRegexが使用されており、試してみる前にhtmlagilitypackを使用してそれを実現できるかどうかを知りたいだけです。

4

1 に答える 1

3

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;
于 2012-08-30T14:57:03.467 に答える