我有一个非常简单的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/

10-13 03:30