Tom Bowen
Tom Bowen

Reputation: 8514

Html Agility Pack - New HtmlAttribute

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?

Upvotes: 10

Views: 9356

Answers (2)

Arran
Arran

Reputation: 25056

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.

Upvotes: 6

I4V
I4V

Reputation: 35353

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

Upvotes: 27

Related Questions