Удалить атрибуты с помощью HtmlAgilityPack

Я пытаюсь создать фрагмент кода для удаления всех атрибутов стиля независимо от тега с помощью HtmlAgilityPack .

Вот мой код:

var elements = htmlDoc.DocumentNode.SelectNodes("//*");

if (elements!=null)
{
    foreach (var element in elements)
    {
        element.Attributes.Remove("style");
    }
}

Однако я не могу заставить его закрепиться? Если я посмотрю на объект element сразу после Remove ("style") . Я могу увидеть, что атрибут стиля удален , но он по-прежнему появляется в объекте DocumentNode . : /

Я чувствую себя немного глупо, но мне это кажется неуместным? Кто-нибудь делал это с помощью HtmlAgilityPack? Спасибо!

Обновление

Я изменил свой код на следующий, и он работает правильно:

public static void RemoveStyleAttributes(this HtmlDocument html)
{
   var elementsWithStyleAttribute = html.DocumentNode.SelectNodes("//@style");

   if (elementsWithStyleAttribute!=null)
   {
      foreach (var element in elementsWithStyleAttribute)
      {
         element.Attributes["style"].Remove();
      }
   }
}

20
задан Ed Schwehm 5 August 2014 в 19:28
поделиться