如何防止tsql轉義標記?
我不完全確定這是你想要的。但是......
的樣本數據:
declare @T table
(
Col varchar(50)
)
insert into @T values ('<span>my field content 1</span>')
insert into @T values ('<span>my field content 2</span>')
查詢針對此表中的等價的:
select Col
from @T
for xml raw, elements, type
從這個結果將是一行和一列,它保存XML文檔看起來像這樣:
<row>
<Col><span>my field content 1</span></Col>
</row>
<row>
<Col><span>my field content 2</span></Col>
</row>
這就是它的方式有,看看您是否想要<span>my field content 1</span>
爲元素col
的值。
你所要求的可以這樣創建:
select cast(Col as xml) as Col
from @T
for xml raw, elements, type
而這也將是這樣一個XML列返回一行:
<row>
<Col>
<span>my field content 1</span>
</Col>
</row>
<row>
<Col>
<span>my field content 2</span>
</Col>
</row>
這裏有<span>my field content 1</span>
爲子節點到Col
不作爲值。
如果您將XML轉義出來,當您從XML中提取它們時,您將得到正確的值。在TSQL中是這樣的,但應該在其他語言中是相同的。
declare @X xml
set @X =
'<row>
<Col><span>my field content 1</span></Col>
</row>
<row>
<Col><span>my field content 2</span></Col>
</row>'
select T.N.value('Col[1]', 'varchar(50)') as Col
from @X.nodes('/row') as T(N)
結果:
Col
--------------------------------------------------
<span>my field content 1</span>
<span>my field content 2</span>
這偉大的工作。謝謝。 – 2012-03-12 15:03:11