0

在下面的 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()函数,谁能给我一些解决这个问题的方法?

4

2 回答 2

2

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

http://nuget.org/packages/HtmlAgilityPack

于 2012-09-05T08:45:00.180 回答
1

幸运的是,您可以使用 CsQuery 在 C# 中使用 jQuery 之类的sintaxys

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();
于 2012-09-05T08:59:28.853 回答