Html Agility Pack - 新的HtmlAttribute

c# html html-agility-pack

在C#中使用Html Agility Pack我有一个节点,我想添加一个属性。

目前,节点是一个没有属性的<li>元素,我想为它添加一个“active”类。

看起来最好用的是node.Attributes.Add(attrClass)

其中attrClassclass="active"HtmlAttribute

但是,如果我尝试定义一个新的HtmlAttribute我会收到一条错误,指出它没有任何构造函数。例如HtmlAttribute attrClass = new HtmlAttribute();

我的Html Agility Pack参考有什么问题,或者我做错了什么?

我可以使用另一种方法来实现我的目标吗?

一般承认的答案

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

热门答案

HtmlAttribute类有一个构造函数,它是internal 。因此,您无法实际调用它,因此无论如何都会出错。

但是,它在HtmlDocument类下面的其他地方暴露。

所以:

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

然后,您有一个HtmlAttribute表示class属性,其值为active



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因