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

标签 c# html-agility-pack

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

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

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

我可能需要对这些元素中的 1 个以上应用操作。

这是我到目前为止使用 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
  }
 }

我的想法是选择任何具有样式属性的。查找最大宽度定义并将其删除。

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

最佳答案

感谢 Marcel 为我指明了正确的方向:

这是对我有用的解决方案。

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;
                }
            }

关于c# - HtmlAgility 从 Div 节点的样式参数中删除属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25232205/

相关文章:

c# - 实现 "Open Containing Folder"并突出显示文件

c# - 通过文本框和按钮搜索 mysql 数据库并将输出重定向到另一个页面

c# - 使用 HtmlAgilityPack 的 doctype 问题

c# - 来自 HTML Agility Pack 中行号/位置号的 HTMLNode

c# - Html Agility Pack - - 提取具有 “empty” 类属性的节点或选择一对节点(一个及其紧随其后的节点)

c# - 领域模型映射

c# - 使用 Entity Framework 从多个表中删除所有记录

c# - 可以使用 DeflateStream 或 GZipStream 压缩未压缩的文件吗?

c# - htmlagilitypack 选择所有图像排除 *.gif

c# - 无法在 VS2012 上安装 HtmlAgilityPack