使用 SQL 查询生成 HTML
Generating HTML with SQL query
我有 table,其中内容有 html 值,并试图将它们与
连接起来
<ul> <li>
我使用了以下查询
CREATE TABLE #T(Value varchar(1000))
INSERT INTO #T
values('<p><b>AA</b> something 1</p>'),('<p><b>BB</b> something 2</p>'),('<p><b>CC</b> something 3</p>')
select *
from #T
SELECT '<ul>' +STUFF((SELECT '<li>' + Value + '</li>'
FROM #T
FOR XML PATH('')), 1, 0, '') + '</ul>' AS Notes
有没有办法按原样得到HTML,所以输出如下
<ul>
<li><p><b>AA</b> something 1</p></li>
<li><p><b>BB</b> something 2</p></li>
<li><p><b>CC</b> something 3</p></li>
</ul>
不像
<ul><li><p><b>AA</b> something 1</p></li><li><p><b>BB</b> something 2</p></li><li><p><b>CC</b> something 3</p></li></ul>
你得到这样的结果是因为没有 > 和 < 符号(以及&符号、双引号和撇号)不能按原样存储在 XML 中,所以它将是转换为一些代码,如 < ;对于 <.
只需用替换函数包装 Notes 即可替换 < 和 > 符号
CREATE TABLE #T(Value varchar(1000))
INSERT INTO #T
values('<p><b>AA</b> something 1</p>'),('<p><b>BB</b> something 2</p>'),('<p><b>CC</b> something 3</p>')
;with html
as
(
SELECT '<ul>' +STUFF((SELECT '<li>' + Value + '</li>'
FROM #T
FOR XML PATH('')), 1, 0, '') + '</ul>' AS Notes
)
select
Notes = REPLACE(REPLACE(Notes,'<','<'),'>','>')
from html
我有 table,其中内容有 html 值,并试图将它们与
连接起来<ul> <li>
我使用了以下查询
CREATE TABLE #T(Value varchar(1000))
INSERT INTO #T
values('<p><b>AA</b> something 1</p>'),('<p><b>BB</b> something 2</p>'),('<p><b>CC</b> something 3</p>')
select *
from #T
SELECT '<ul>' +STUFF((SELECT '<li>' + Value + '</li>'
FROM #T
FOR XML PATH('')), 1, 0, '') + '</ul>' AS Notes
有没有办法按原样得到HTML,所以输出如下
<ul>
<li><p><b>AA</b> something 1</p></li>
<li><p><b>BB</b> something 2</p></li>
<li><p><b>CC</b> something 3</p></li>
</ul>
不像
<ul><li><p><b>AA</b> something 1</p></li><li><p><b>BB</b> something 2</p></li><li><p><b>CC</b> something 3</p></li></ul>
你得到这样的结果是因为没有 > 和 < 符号(以及&符号、双引号和撇号)不能按原样存储在 XML 中,所以它将是转换为一些代码,如 < ;对于 <.
只需用替换函数包装 Notes 即可替换 < 和 > 符号
CREATE TABLE #T(Value varchar(1000))
INSERT INTO #T
values('<p><b>AA</b> something 1</p>'),('<p><b>BB</b> something 2</p>'),('<p><b>CC</b> something 3</p>')
;with html
as
(
SELECT '<ul>' +STUFF((SELECT '<li>' + Value + '</li>'
FROM #T
FOR XML PATH('')), 1, 0, '') + '</ul>' AS Notes
)
select
Notes = REPLACE(REPLACE(Notes,'<','<'),'>','>')
from html