我在c#中使用HtmlAgilityPack
。我创建了一个div元素,其中包含一些属性,如
HtmlNode div = HtmlNode.CreateNode("<div></div>");
div.Attributes.Add("style","width:100px;height:100px;color:red;position:absolute;");
现在我想知道HtmlAgilityPack中是否存在任何方法,我可以单独访问样式属性,就像我们在jQuery中一样:
$("div").width(); or $("div").css("width");
答案 0 :(得分:1)
您可以尝试使用CsQuery,这实际上就像jQuery:
CQ div = CQ.Create("<div></div>");
div.CssSet( new {
width="100px",
height="100px",
color="red",
position="absolute"
});
//.. or
div.Css("width","100px").Css( ... ) ...
string width = div.Css("width"); // width=="100px"
int widthInt = div.Css<int>("width"); // widthInt==100
它实现了jQuery的每个DOM操作方法,因此API应该非常熟悉。它还提供了一种主要模仿浏览器DOM的实现,例如
var nodeName = div[0].NodeName; // nodeName=="DIV";
div[0].AppendChild(div.Document.CeateElement("span")); // add a span child
有几个例外,CssSet
就是其中之一,其中javascript中的重载方法在C#中无法解决,因此必须使用不同的方法。 (从对象设置时,另一个是AttrSet
)。它还具有广泛的单元测试覆盖率,包括从jQuery移植到C#的大部分测试套件,并且选择器比HTML Agility Pack快得多(更不用说因为它们只是CSS而不那么令人困惑),这要归功于具有subselect功能的索引。