Html Agility Pack - New HtmlAttribute

c# html html-agility-pack

Question

Using Html Agility Pack in C# I have a node I'd like to add an attribute to.

Currently the node is an <li> element with no attributes and I'd like to add a class to it of "active".

It looks like the best thing to use would be node.Attributes.Add(attrClass)

Where attrClass is a HtmlAttribute of class="active".

However if I try to define a new HtmlAttribute I get an error stating that it doesn't have any constructors. Eg HtmlAttribute attrClass = new HtmlAttribute();

Is there something wrong with my Html Agility Pack reference, or am I doing something incorrectly?

Is there another method I could use to achieve my goal?

Accepted Answer

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

Popular Answer

The HtmlAttribute class has one constructor, which is internal. Therefore you'd not have access to actually call it, thus you'd get an error either way.

However, it is exposed elsewhere, under the HtmlDocument class.

So:

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

You then have a HtmlAttribute representing the class attribute with a value of active.



Related

Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow