在使用sql查询xml时如何保留HTML标记?

时间:2012-06-04 02:05:12

标签: html sql xml sql-server-2008 sql-server-2005

当我编写查询以生成xml标记时,我想在我的sql查询中保留html标记。 例如:

select '<p> this is a code</p>' as code
from table name
for xml path (''), type

输出:

<code>&ltp&gt; this is a code &lt/p&gt; <code>

它应该输出什么:

<code><p> this is a code </p><code>

我该如何解决这个问题?谢谢!

2 个答案:

答案 0 :(得分:4)

如果使用xhtml,我相信转换为Xml即可:

select convert(xml, '<p> this is a code</p>') as code
from table name
for xml path (''), type

编辑:如果列为ntext,则支持隐式转换为Xml

create table #t(html ntext)
insert into #t values(N'<p> this is a code</p>')
select convert(xml, html) as code
from #t
for xml path (''), type
drop table #t

答案 1 :(得分:2)

下面的代码片段适用于我

DECLARE @HTMLt  NVARCHAR(MAX)  ;

........

SET @HTMLt = REPLACE(REPLACE(REPLACE(@HTMLt,'&amp;','&' ) , '&lt;','<'),'&gt;','>');