【发布时间】:2012-08-17 05:58:52
【问题描述】:
我正在使用 HtmlAgilityPack。我正在搜索所有 P 标签并在 P 标签内的样式中添加“margin-top:0px”。
如您所见,这有点“强制”margin-top 属性。似乎必须有更好的方法来使用 HtmlAgilityPack 但我找不到它,并且 HtmlAgilityPack 文档不存在。
有人知道更好的方法吗?
HtmlNodeCollection pTagNodes = node.SelectNodes("//p[not(contains(@style,'margin-top'))]");
if (pTagNodes != null && pTagNodes.Any())
{
foreach (HtmlNode pTagNode in pTagNodes)
{
if (pTagNode.Attributes.Contains("style"))
{
string styles = pTagNode.Attributes["style"].Value;
pTagNode.SetAttributeValue("style", styles + "; margin-top: 0px");
}
else
{
pTagNode.Attributes.Add("style", "margin-top: 0px");
}
}
}
更新:我已根据 Alex 的建议修改了代码。仍然想知道是否有一些内置的 HtmlAgilityPack 中的功能,它将以更“DOM”的方式处理样式属性。
const string margin = "; margin-top: 0px";
HtmlNodeCollection pTagNodes = node.SelectNodes("//p[not(contains(@style,'margin-top'))]");
if (pTagNodes != null && pTagNodes.Any())
{
foreach (var pTagNode in pTagNodes)
{
string styles = pTagNode.GetAttributeValue("style", "");
pTagNode.SetAttributeValue("style", styles + margin);
}
}
【问题讨论】:
标签: c# html html-agility-pack