2016-03-02 81 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