Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL中将结果转换为xml时使用垃圾字符_Sql_Xml_Sql Server 2008 - Fatal编程技术网

在SQL中将结果转换为xml时使用垃圾字符

在SQL中将结果转换为xml时使用垃圾字符,sql,xml,sql-server-2008,Sql,Xml,Sql Server 2008,将我的表结果转换为xml时,正在提交垃圾字符 下面是我正在使用的sql代码 CREATE TABLE #tbl ( RowID INT , Comments NVARCHAR(MAX) ) ------------------------------- INSERT INTO #Tbl(RowID, Comments) VALUES (1, '&test 123123123 & test test123& ' ) INSERT INTO #Tbl(RowID, Co

将我的表结果转换为xml时,正在提交垃圾字符

下面是我正在使用的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

在这方面有人能帮我吗。提前感谢。

正如其他人所说,它们不是垃圾角色,它们的行为更像转义角色

就是说,为了你的目的,做一个替换

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

您认为的垃圾字符不是垃圾字符,而是格式完美的实体编码字符,允许在注释中包含文字符号和换行符。在XML中。@ChrisDickson谢谢您的注释,您能帮助我如何删除这些字符吗。@Asif,不知道您的确切意思。。。简而言之:你不能移除它们!XML中不允许使用某些字符。但这只是一个技术问题。在所有情况下,XML都应该在某种转换后显示给用户。在那里,您将获得“原始”文本。