Come si htmlencode utilizzando il pacchetto agility html?

html-agility-pack html-encode xss

Domanda

Qualcuno ha fatto questo? Fondamentalmente, voglio usare l'html mantenendo i tag di base come h1, h2, em, ecc; pulisci tutti gli indirizzi non http in img e tag; e HTMLEncode ogni altro tag.

Sono bloccato alla parte di codifica HTML. So che per rimuovere un nodo fai un "node.ParentNode.RemoveChild (node);" dove node è l'oggetto della classe HtmlNode. Invece di rimuovere il nodo, voglio HTMLEncode.

Risposta popolare

Dovresti rimuovere il nodo che rappresenta l'elemento che non vuoi. L'HTML codificato dovrebbe quindi essere aggiunto nuovamente come nodo di testo.

Se non vuoi elaborare i figli degli elementi che vuoi buttare via, dovresti essere in grado di usare semplicemente OuterHtml ... qualcosa del genere potrebbe funzionare:

node.AppendChild(new HtmlTextNode { Text = HttpUtility.HtmlEncode(nodeToDelete.OuterHtml) });



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché