我有一个非常简单的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中,字符
<
和>
不是标签定界符,而是运算符。一个正则表达式可能会将这些运算符当作标记来匹配,这将完全弄乱文档。关于c# - 正则表达式可清除html标记中的属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10317042/