【发布时间】:2011-06-16 18:49:39
【问题描述】:
我的数据库中存储了一个字符串,格式为 html,用户可以更改字体大小。没关系,但我需要做一个报告,并且字体大小都需要相同。因此,如果我有以下 html,我想将其修改为字体大小为 10:
<HTML><BODY><DIV STYLE="text-align:Left;font-family:Tahoma;font-style:normal;font-weight:normal;font-size:11;color:#000000;"><DIV><DIV><P><SPAN>This is my text to display.</SPAN></P></DIV></DIV></DIV></BODY></HTML>
我有一个用户定义的函数,但显然我不能在 REPLACE 中使用通配符,所以它实际上并没有做任何事情:
ALTER FUNCTION [dbo].[udf_SetFont]
(@HTMLText VARCHAR(MAX))
RETURNS VARCHAR(MAX)
AS
BEGIN
RETURN REPLACE (@HTMLText, 'font-size:%;', 'font-size:10;')
END
(当然,如果我将字体大小作为参数发送会更好,因此我可以将其更改为任何值。)
如何修改它以更改任何字符串,使字体大小为 10?
【问题讨论】:
-
您是否考虑过使用 CSS 类并将演示文稿格式保存在外部 CSS 文件中?
-
这里的任何解决方案都会遇到困难,因为 T-SQL 不擅长字符串解析。我的建议是编写一个 CLR 函数,以便您可以利用 .NET 字符串库。我会发布到目前为止我想出的东西,诚然,这并不多。
-
报告是在 Crystal Reports 中完成的,他们主要需要 html 格式。我无法控制数据的存储方式。
-
我添加了代码作为似乎可行的答案,但在获得一些代码审查之前我不想接受我自己的答案。不知道有没有什么问题是我还没遇到过的。
标签: html sql-server sql-server-2008 user-defined-functions