控制XML中的字符处理

时间:2015-09-01 14:15:39

标签: sql xml

我正在使用FOR XML AUTO跟踪基于XML的数据传输。当遇到包含控制字符的列并尝试进行如下XML转换时,会导致异常:

DECLARE @TrialData NVARCHAR(200) = ''; --Not empty string..contains a control character '<-' 

DECLARE @TrialDataInHex VARBINARY(100)
SET @TrialDataInHex = CONVERT(VARBINARY(100),@TrialData)
SELECT @TrialDataInHex; -- returns 0x1B00 looks like this '<-'

现在,当我尝试将其插入XML变量时,如下所示

DECLARE @a_XML XML;
SET @a_XML = @TrialData;

这导致了

  

XML解析:第0行,字符0,无法识别的输入签名

有人建议在使用XML FROM SQL数据媒体时如何处理控制字符?

1 个答案:

答案 0 :(得分:1)

您必须将该值包装在XML元素中:

XMLELEMENT("TrialData" , @TrialData)

产生

<TrialData>←</TrialData>