HtmlAgility从Div节点的样式参数中删除属性

时间:2014-08-10 19:26:33

标签: c# html-agility-pack

我试图从DIV元素的style属性中删除样式定义。 HTML代码:

<div class="el1" style="width:800px; max-width:100%" />
...

<div class="el2" style="width:800px; max-width:100%" />

我需要将这些操作应用于这些元素中的一个以上。

这是我到目前为止使用的HtmlAgilityPack。

foreach (HtmlNode div in doc.DocumentNode.SelectNodes("//div[@style]"))
{
  if (div != null)
  {
    div.Attributes["style"].Value["max-width"].Remove(); //Remove() does not appear to be a function
  }
 }

我的思维过程是选择任何一个样式属性。寻找最大宽度定义并将其删除。

关于如何实现这一目标的任何指导?

1 个答案:

答案 0 :(得分:4)

谢谢马塞尔指出我正确的方向:

这是适合我的解决方案。

HtmlNodeCollection divs = doc.DocumentNode.SelectNodes("//div[@style]");
            if (divs != null)
            {
                foreach (HtmlNode div in divs)
                {
                    string style = div.Attributes["style"].Value;
                    string pattern = @"max-width(.*?)(;)";
                    Regex regex = new Regex(pattern, RegexOptions.IgnoreCase);
                    string newStyle = regex.Replace(style, String.Empty);
                    div.Attributes["style"].Value = newStyle;
                }
            }