2016-03-02 27 views
0

垃圾字符,而将我的表格结果转换成XML垃圾字符,而转换结果为XML在SQL

以下是正在添加是我使用的SQL代码

CREATE TABLE #tbl 
(
RowID INT 
, Comments NVARCHAR(MAX) 
) 

------------------------------- 


INSERT INTO #Tbl(RowID, Comments) VALUES (1, '&test 123123123 & test 
test123& 
') 
INSERT INTO #Tbl(RowID, Comments) VALUES (2, '&test 123123123 & test') 
INSERT INTO #Tbl(RowID, Comments) VALUES (3, '&test 123123123 & test 
test123& 
&&') 

------------------------------------ 


SELECT 
    (
     SELECT distinct 
      RowId  

      ,Comments AS Comments 
     FROM 
      #tbl AS t 
     FOR XML RAW, TYPE 
    )FOR XML PATH('Table'), TYPE 


------------------------------------ 

DROP TABLE #tbl 

谁能帮助我在这方面。提前致谢。

+0

你认为什么是垃圾字符不是垃圾,但五脏俱全实体编码的字符,让您的评论文字与符号和换行符被包含在XML中。 –

+0

@ChrisDickson感谢您的评论,你能帮我一下,我可以如何删除这些角色。 – Asif

+2

@Asif,不知道你的意思......简而言之:你不能删除它们!在XML中有某些**不允许**的字符。但这只是一个技术问题。在所有情况下,XML都应该在某种转换之后向用户显示。你会得到“原始”文本。 – Shnugo

回答

0

正如其他人所说,他们不是垃圾人物,他们更像逃逸字符。

宽这样说,你的目的,做一次更换

SELECT (SELECT distinct RowId , REPLACE(Comments, '&', '&') AS Comments 
     FROM #tbl AS t 
     FOR XML RAW, TYPE) 
     FOR XML PATH('Table'), TYPE