Wie kann ich den kommentierten Text in HTML mit htmlagilitypack entfernen

html-agility-pack

Frage

Ist es möglich, den kommentierten Text in html mithilfe der Bibliothek htmlagilitypack zu entfernen? Derzeit mache ich einige Migrationsarbeiten von ASP zu ASP.NET MVC und dort wird Regex für diese Dinge verwendet und ich möchte nur wissen, ob ich das mit htmlagilitypack erreichen kann, bevor ich es versuche.

Akzeptierte Antwort

Sie können alle Knoten des Typs HtmlCommentNode (der einen HTML-Kommentar darstellt) finden und aus dem Dokument entfernen. Beachten Sie aber, dass AgilityPack zB auch <!DOCTYPE html> als Kommentarknoten behandelt. Daher sollten solche Knoten zum Löschen übersprungen werden:

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;


Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum