Sql server TSQL在XML中转换字符
我正在代码中生成一个XML字符串,并将其发送到存储过程。由于特定的数据包含一个符号Sql server TSQL在XML中转换字符,sql-server,xml,tsql,stored-procedures,Sql Server,Xml,Tsql,Stored Procedures,我正在代码中生成一个XML字符串,并将其发送到存储过程。由于特定的数据包含一个符号&,我必须在发送XML字符串之前将其转换为其他内容,因为它会扰乱XML结构 我将&的任何实例转换为XML字符串中的~ 通常,在过去,当我准备将数据添加到字段中时,我会重新转换该字符,并且效果良好 但是,这次我将把一个XML节点插入到一个字段中,该字符包含在该节点中 INSERT INTO TFS_Feedback_New (submitTime, type, reasonID, status, outcome,
&
,我必须在发送XML字符串之前将其转换为其他内容,因为它会扰乱XML结构
我将&
的任何实例转换为XML字符串中的~
通常,在过去,当我准备将数据添加到字段中时,我会重新转换该字符,并且效果良好
但是,这次我将把一个XML节点插入到一个字段中,该字符包含在该节点中
INSERT INTO TFS_Feedback_New (submitTime, type, reasonID, status, outcome, Details, submitterQID, submitterSupQID, submitterDepartment, submitterGeoLocationDesc, targetQID, targetSupQID, targetDepartment, targetGeoLocationDesc, feedbackOriginal)
SELECT GETUTCDATE(),
@feedbackType,
@feedbackReason,
@status,
'Pending',
@xml.query('/data/optional'),
@submitterQID,
@SubmitterSupQID,
@SubmitterDept,
@SubmitterLoc,
@TargetQID,
@TargetSupQID,
@TargetDept,
@TargetLoc,
@feedback
正如您所看到的,有一个字段@xml.query('/data/optional')
。这就是包含XML字符串的内容,该字符串具有我需要替换的字符
下面是我发送到存储过程Dogs~Cats
在将XML字符串插入字段之前,我需要将~
转换为&
有什么想法吗?XML字符串中不允许使用
&
字符。它应编码为&代码>,表示符号AND,或者作为&代码>,使用
查看您是否可以让您的客户以正确编码的方式发送&
&代码>XML。我还建议您将列的类型设置为xml
,这样您就可以相信它包含语法正确的xml。您需要进行适当的xml实体编码。您需要做的最低要求是:
&
=&李>
首先应该生成正确的xml<代码>&
应为&代码>。如果不允许使用&
,为什么&代码>;)因为裸&
在xml中是非法的。它必须编码为&代码>将中断xml的特殊字符列表及其替换" - " ' - '
SBB,不确定您是否看到了我在您接受后发布的最后一次编辑(谢谢),但是如果您使用.NET,我发现了一种非常简单的编码方法。
<tag attribute="test " attr">Some stuff here</tag>