如何判断html字符串在浏览器中是否显示为空?(C#/正则表达式?)

Nea*_*son 2 html c# regex string

我有一个控件,会将一些html作为字符串返回给我.在把它放到屏幕上之前,我想知道它是否只是显示为空.

例如,控件可能会返回<p><br /></p>,当我使用C#测试string.Emtpy时,显然它不是 - 但屏幕上没有显示任何内容.

是否有正则表达式函数来测试html是否会在屏幕上显示任何文本?或者使用C# - 是否有任何函数来测试包含html的字符串,看它是否实际上包含除标签之外的任何内容?

干杯,我有点困惑如何在不写一些自定义解析器的情况下解决这个问题,这条道路我不想下去!

Kan*_*ane 5

正如@Ignacio所回答的那样,你应该使用HTML Agility包这样的东西.这里有一些代码似乎适用于您的情况.

HtmlDocument docEmpty = new HtmlDocument();
docEmpty.LoadHtml("<p><br /></p>");

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml("<p>I am not empty...<br /></p>");

bool shouldBeEmpty = string.IsNullOrEmpty(docEmpty.DocumentNode.InnerText);
bool shouldNotByEmpty = string.IsNullOrEmpty(doc.DocumentNode.InnerText);
Run Code Online (Sandbox Code Playgroud)

注意:此示例使用http://html-agility-pack.net/?z=codeplex解析器.