mar 22, 2014

Html Agility Pack

Vi è mai capito di dover normalizzare un documento html scritto dagli utenti tramite WYSIWYG? Se si sono impegnati particolarmente, potreste vederne davvero delle belle, con risultati catastrofici sotto tutti i punti di vista (UI devastata e performace negative sui caricamenti)

Pensare di “Ripulire” a mano l’articolo sarebbe troppo laborioso e dispersivo.

Dopo ore di frustrazione ho trovato una libreria davvero interessante e ben fatta: “Html agility pack”.

Come funziona?

Inserisco il mio testo da normalizzare caricandolo dentro un HtmlDocument.

var htmlDoc = new HtmlDocument {OptionFixNestedTags = true};
htmlDoc.LoadHtml(ilMioTesto);

Se Volessi per esempio togliere tutti gli attributi style dal mio documento, non dovrei far altro che selezionare tutti i tag presenti e eliminare per ogni element l’attributo style. Potrei anche divertirmi ad inserire classi specifiche per delle possibili tabelle presenti nel documento.

var elements = htmlDoc.DocumentNode.SelectNodes("//*");
if (elements != null)
{
	foreach (var element in elements)
	{
		element.Attributes.Remove("style");

		if (element.OriginalName == "table")
			{
				element.Attributes.RemoveAll();
				element.Attributes.Add("class", "table table-hover table-striped");
			}
}

Per referenziare la libreria vi suggerisco di utilizzare direttamente da Visual studio la funzione Manage NuGet packages e cercare Html agility pack

Tags: html, strip html

No Comments

Add a Comment

© 2017 Bunny's Attack