Я пытаюсь создать фрагмент кода для удаления всех атрибутов style
независимо от тега с помощью 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();
}
}
}
<html style='style1'><body style='style2'></body></html>
и он работает - person Simon Mourier   schedule 02.05.2011