我有一个非常简单的 reg ex 问题。我的 HTML 标记如下所示:
<body lang=EN-US link=blue vlink=purple>
我想清除所有属性并只返回<body>
我想清除许多其他 HTML 标记的属性,因此我希望重用该解决方案。如何用正则表达式做到这一点? 谢谢, B.
请您参考如下方法:
使用HtmlAgilityPack像这样:
public string RemoveAllAttributesFromEveryNode(string html)
{
var htmlDocument = new HtmlAgilityPack.HtmlDocument();
htmlDocument.LoadHtml(html);
foreach (var eachNode in htmlDocument.DocumentNode.SelectNodes("//*"))
eachNode.Attributes.RemoveAll();
html = htmlDocument.DocumentNode.OuterHtml;
return html;
}
调用此方法传递要从中删除所有属性的 html。
xpath将在这方面对您有很大帮助。
不要对可能包含脚本的 html 文件使用正则表达式,如在 Javascript 中,字符 <和 >不是标记定界符而是运算符。正则表达式可能会匹配这些运算符,就好像它们是标签一样,这会完全弄乱文档。
