使用Html敏捷包删除属性
运行此代码时,将触发.RemoveAll方法:使用Html敏捷包删除属性,html,parsing,html-agility-pack,Html,Parsing,Html Agility Pack,运行此代码时,将触发.RemoveAll方法: HtmlDocument doc = new HtmlDocument(); doc.LoadHtml(html); var elementsWithAttribute = doc.DocumentNode.SelectNodes("//@*"); if (elementsWithAttribute != null) { foreach (var element in elementsWithAttribute) {
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
var elementsWithAttribute = doc.DocumentNode.SelectNodes("//@*");
if (elementsWithAttribute != null)
{
foreach (var element in elementsWithAttribute)
{
element.Attributes.RemoveAll();
}
}
但是doc.DocumentNode.OuterHtml仍然包含带有属性的标记。(我曾尝试通过save方法和内存流将文档刷新为字符串,但结果是一样的)
如何从所有标记中删除所有属性(但保留标记)?有趣的是,如果在运行循环一次后重新运行循环(使用调试模式),select返回0行,表示删除已“生效”-但在html表示中看不到结果!如果为doc.DocumentNode.OuterHtml
运行类似的foreach
,会发生什么?OuterHtml是一个字符串-我不认为我可以用同样的方式迭代它,对吧?也许这就是为什么属性没有从OuterHtml中删除。