如何搜索html内容?

时间:2012-02-19 09:21:42

标签: asp.net sql sql-server

在我的网站中,用户可以使用WYSIWYG控件添加HTML内容。我将这些内容保存到数据库中 我想搜索这些数据,所以我使用这个查询:

select * from htmlcontent where content like '%' + @searchValue + '%'

但是例如当用户搜索"<p>"时,此查询会返回表格中的所有行。但我希望用户只能搜索html内容(用户可以在浏览器上看到的数据)而不是标签

我该怎么办?

已编辑: 我希望用户搜索html内容而不是标签。有些事情比如在浏览器中搜索(ctrl + F)

3 个答案:

答案 0 :(得分:1)

您需要从用户输入字符串中删除所有HTML标记,然后使用已清理的字符串进行搜索。您可能希望将所有找到的代码替换为%,以便在内容中找到标记时进行匹配。有关如何从输入字符串中删除标记的信息,请参阅this question

另一种方法是清理WYSIWYG字符串,然后搜索它。如果没有主要的字符串欺骗,这两个都不能在数据库中执行。你最好在ASP方面解决这个问题。

答案 1 :(得分:0)

我不确定,但我认为你可以在结果上使用TrimStart('<p>')TrimEnd('</p>')来获得你想要的结果。

答案 2 :(得分:0)

为什么不在途中修改搜索字符串,以便在那里删除html标记。然后在搜索之前检查字符串是否为空。

搜索字符串如&lt; p&gt; Hello&lt; / p&gt;变得只是你好