我正在使用MVC3的实体框架,我正在尝试对描述字段进行搜索,但问题是描述字段中包含HTML,例如“< div class =”section“/>”。我可以进行时髦的搜索,只搜索HTML标记之外的内容吗?
return context.Categories
.Where(i =>
i.Name.Contains(searchText)
&& i.Description.Contains(searchText)
)
提前致谢!
答案 0 :(得分:0)
给HtmlAgilityPack一个去。它有从HTML文档中提取文本的方法。
您基本上只需要执行以下操作:
var doc = new HtmlDocument();
doc.LoadHtml(htmlStr);
var node = doc.DocumentNode;
var textContent = node.InnerText;
或者不那么棒的方法:
public static string StripHTML(string htmlString)
{
string pattern = @"<(.|\n)*?>";
return Regex.Replace(htmlString, pattern, string.Empty);
}
一起
return StripHTML(context.Categories.Where(i => i.Name.Contains(searchText)&& i.Description.Contains(searchText)))