C#按特定属性值删除特殊的html标记

时间:2012-09-05 08:42:38

标签: c# html

在下面的html代码中,我想使用c#程序删除"display:none"中属性值为style的整个代码:

<td>
    <span style="display:none">
        <font color="#ffffff">OK</font>
    </span>
    <span>
    <font color="#ffffff">OK</font>
    </span>
</td>

并且html将成为:

<td>
    <span>
        <font color="#ffffff">OK</font>
    </span>
</td>

除了使用Replace()功能外,有人可以建议我解决这个问题的方法吗?

2 个答案:

答案 0 :(得分:2)

您可以使用HTMLAGILITY Pack安全地解析您的html节点

http://nuget.org/packages/HtmlAgilityPack

答案 1 :(得分:1)

幸运的是,您可以使用CsQuery

在C#中使用像sintaxys这样的jQuery
string htmlString = @"<td>
<span style=\"display:none\">
<font color=\"#ffffff\">OK</font>
</span>
<span>
<font color=\"#ffffff\">OK</font>
</span>
</td>";
var dom = CQ.Create(htmlString);
dom.Select("[style=display:none]").Remove();

我不测试它,但是一个很好的起点

在具有多个显示的DOM中:无,如评论中提到的@jamietre

var dom = CQ.Create(htmlString);
dom.Select("[style]").Where(item=>item.Style["display"]=="none")).Rem‌​ove();