我需要更改很多页面的CSS,所以我抓住机会玩AgilityHTML,我可以读取我必须改变的css条目,但我不知道如何更改它的href。
这是我想要改变的一个例子:
<link rel="stylesheet" type="text/css" href="http://cdn.mysite.com/master/public.css?rev=012010">
更具体的href:
http://cdn.mysite.com/master/public.css?rev=012010
我环顾四周但尚未找到答案。
var nodes = doc.DocumentNode.SelectNodes("//css[@type=\"text/css\"]");
if (nodes != null)
{
foreach (HtmlNode data in nodes)
{
if (data.Attributes["href"] == null)
continue;
//data.Attributes["href"].Value;
}
}
要恢复:
如何更改href并将其保存回来?
答案 0 :(得分:1)
data.Attributes["href"].Value = "Whatever you want";
...
...
doc.Save(stream);
// or:
string content = doc.DocumentNode.OuterHtml;
答案 1 :(得分:0)
尝试以下,
var nodes = doc.DocumentNode.SelectNodes("//css[@type='text/css']");
它将正确选择节点。
我猜HtmlNode类上有一个名为
的方法SetAttributeValue
您可以使用它来保存新值。
设置值后,您可以使用
访问已更改的html内容node.DocumentNode.OuterHtml