SQL和SSRS-删除字符串中的所有HTML标记并搜索纯文本

时间:2018-09-10 11:09:56

标签: html xml sql-server-2012 ssrs-2008

我有一个varchar字段,用于存储所见即所得编辑器中的内容,因此其中包含html标记。我需要能够通过关键字搜索SSRS报告。

如果html格式正确,但如果不正确,则会引发xml解析错误。

XML parsing: line 1, character 55, well formed check: undeclared entity

在sql server中是否有一种方法可以剥离所有html并仅搜索纯文本或任何其他建议,例如我可以从该列中搜索关键字的查询?

SELECT t1.Id, t1.Subject, t1.Details
FROM Tickets AS t1 
 WHERE (CAST(REPLACE(REPLACE(t1.Details, '>', '/>'), '</', '<') AS XML).value('.', 'nvarchar(max)') LIKE '%' + @keyword + '%' OR t1.Subject LIKE '%' + @keyword + '%') 

作为一种变通办法,我试图按如下方法在SSRS内添加过滤器,但是如果我搜索关键字<span>,由于某种奇怪的原因,它仍会返回结果?

 =(Fields!Description.Value Like "*" + Parameters!keyword.Value + "*") Or ( System.Text.RegularExpressions.Regex.Replace(Fields!Description.Value, "<[^>]+>","") Like  "*" + Parameters!keyword.Value + "*");

为什么正则表达式过滤器不起作用?

0 个答案:

没有答案