1

HtmlAgilityPack在 c# 中使用。我创建了一个具有某些属性的 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");
4

1 回答 1

2

您可以尝试使用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,所以更容易混淆),这要归功于具有子选择功能指数。

于 2012-07-14T12:27:28.653 回答