当它包含转义无效字符时如何将XML插入到SQL Server中

问题描述:

我试图将一些XML插入到使用列类型XML的SQL Server数据库表中。当它包含转义无效字符时如何将XML插入到SQL Server中

也能正常工作的大部分时间,但一个用户提交的一些XML与十六进制值3的性格,和SQL Server给了错误“十六进制值0x03时,是无效的字符。”

现在我要检查,并删除,在做之前插入任何无效的XML字符,并且有各种物品建议如何无效的XML字符可以使用正则表达式或类似的东西来代替。

但是,我的问题是,用户提交的XML文档转义了无效字符,即“”,并且我找到的方法都不会检测到这一点。这也是为什么之前没有检测到错误的原因:只有当它插入SQL数据库时才会发生问题。

有没有人写,将检查所有转义无效XML字符的功能?我想上面的角色可能被写为或者或者很多其他方式,所以很难全部抓住它们。

在此先感谢您提供的任何帮助。

+0

注意,我尝试谈论逃脱的字符失败上面:我的意思是说:&符号散列x 3; – Pete

你可以尝试导入XML到一个临时VARCHAR(最大值)的变量或表列,并使用REPLACE来剔除有问题的字符,然后将清洗串到目标它铸造于XML