2012-06-04 5 views
6

私はxmlタグを生成するためのクエリを書くとき、私のSQLクエリでhtmlタグを保持したいと思います。たとえば :sqlを使用してxmlをクエリするとき、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> 

どのように私はこの問題を解決するのですか?ありがとう!

+0

For XML Explici私は信じています。 http://stackoverflow.com/questions/1947884/how-to-get-sql-query-to-not-escape-html-data-returned-in-query –

答えて

4

xhtmlを使用している場合、私はXmlへの変換がどうなると信じて:

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

EDIT:列が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 
+0

これは素晴らしいですが、変換する変数がntext。 – Bartman

+0

'ntext'から' xml'への変換は暗黙的です([this](http://msdn.microsoft.com/en-us/library/ms187928.aspx)を参照)。私は答えを編集して例を挙げました。 –

+0

ありがとう、なぜ私はntextについて尋ねた理由は、私が変換しようとしていたカラムがntextであったためにエラーが発生したためです。変数には&が含まれていることがわかります。これはxmlとあまり親和性がありません。 &を解析する方法はありますか? – Bartman

2

はのために働きます私

DECLARE @HTMLt NVARCHAR(MAX) ; 

........ 

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

汚いが効果的です、ありがとう。 – Mike

関連する問題