首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >System.Xml.XmlDocument.OuterXml中的SQL2005XML特殊/转义字符

System.Xml.XmlDocument.OuterXml中的SQL2005XML特殊/转义字符
EN

Stack Overflow用户
提问于 2009-06-16 10:00:31
回答 2查看 1.9K关注 0票数 0

我有一些在C#中使用XmlDocument对象创建的XML。

然后,我使用XmlDocument.OuterXml方法将xml数据插入到SQL2005中的xml列中,以获得原始XML。

我遇到的问题是xml包含一些特殊字符。也就是说:这是因为xml是由来自各种来源的用户输入构建而成的。

当我执行插入时,我得到一条SQL错误消息,说XML parsing:非法的xml字符。

代码语言:javascript
复制
CREATE TABLE #MyTable (MyColumn XML)
INSERT INTO #MyTable VALUES ('<Element>&#x1F;&#x1C;</Element>')

消息9420,级别16,状态1,线路2

XML分析:第1行,字符15,非法的xml字符

谁能给我指个方向,告诉我如何解决这个问题?

对我来说,对XmlDocument对象或原始XML本身进行任何更改都是非常困难的,但是,我可以更改用于获取原始xml的机制。如果需要,我还可以更改我的数据库设置。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-06-16 10:02:37

如果你有一个包含无效字符的XmlDocument,那么你基本上就没有得到有效的XML。在U+0020中,除了制表符、回车符和换行符之外,没有其他方法可以表示任何低于XML值的内容。我不完全确定原因,但根据规范,它是无效的XML。

您可以将无效XML的原始文本存储在数据库中,但我假设您首先希望它是一个XML列是有原因的:)

您真的想保留这个无效的XML吗?你知道它是从哪里来的吗?它是否是必需的?我会亲自尝试清理所有可能的数据。

(顺便说一句,第一个Stack Overflow数据转储有一个非常类似的问题,所以不只是您:)

票数 1
EN

Stack Overflow用户

发布于 2009-11-14 03:27:50

这可以插入到#MyTable值(‘’)中

为了清楚起见,我现在添加了空格

插入到#MyTable值中(‘&a m p;#x 1 F; ')

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1000555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档