2013-08-23 7 views
6

Utilizzo di Html Agility Pack in C# Ho un nodo a cui vorrei aggiungere un attributo.Html Agility Pack - Nuovo HtmlAttribute

Attualmente il nodo è un elemento <li> senza attributi e vorrei aggiungere una classe di "attivo".

sembra che la cosa migliore da usare sarebbe node.Attributes.Add(attrClass)

Dove attrClass è un HtmlAttribute di class="active".

Tuttavia, se provo a definire un nuovo HtmlAttribute, viene visualizzato un errore che indica che non sono presenti costruttori. Esempio: HtmlAttribute attrClass = new HtmlAttribute();

C'è qualcosa di sbagliato nel mio riferimento di Html Agility Pack o sto facendo qualcosa in modo errato?

C'è un altro metodo che potrei usare per raggiungere il mio obiettivo?

risposta

16
node.Attributes.Add("class","active"); 
5

La classe HtmlAttribute ha un costruttore, che è internal. Quindi non avresti accesso per chiamarlo effettivamente, quindi avresti comunque un errore.

Tuttavia, è esposto altrove, sotto la classe HtmlDocument.

Quindi:

HtmlDocument document = new HtmlDocument(); 
var attribute = document.CreateAttribute("class", "active"); 

allora avete una HtmlAttribute che rappresenta l'attributo class con un valore di active.