我有一些在C#中使用XmlDocument对象创建的XML。
然后,我使用XmlDocument.OuterXml方法将xml数据插入到SQL2005中的xml列中,以获得原始XML。
我遇到的问题是xml包含一些特殊字符。也就是说:这是因为xml是由来自各种来源的用户输入构建而成的。
当我执行插入时,我得到一条SQL错误消息,说XML parsing:非法的xml字符。
CREATE TABLE #MyTable (MyColumn XML)
INSERT INTO #MyTable VALUES ('<Element></Element>')消息9420,级别16,状态1,线路2
XML分析:第1行,字符15,非法的xml字符
谁能给我指个方向,告诉我如何解决这个问题?
对我来说,对XmlDocument对象或原始XML本身进行任何更改都是非常困难的,但是,我可以更改用于获取原始xml的机制。如果需要,我还可以更改我的数据库设置。
发布于 2009-06-16 10:02:37
如果你有一个包含无效字符的XmlDocument,那么你基本上就没有得到有效的XML。在U+0020中,除了制表符、回车符和换行符之外,没有其他方法可以表示任何低于XML值的内容。我不完全确定原因,但根据规范,它是无效的XML。
您可以将无效XML的原始文本存储在数据库中,但我假设您首先希望它是一个XML列是有原因的:)
您真的想保留这个无效的XML吗?你知道它是从哪里来的吗?它是否是必需的?我会亲自尝试清理所有可能的数据。
(顺便说一句,第一个Stack Overflow数据转储有一个非常类似的问题,所以不只是您:)
发布于 2009-11-14 03:27:50
这可以插入到#MyTable值(‘’)中
为了清楚起见,我现在添加了空格
插入到#MyTable值中(‘&a m p;#x 1 F; ')
https://stackoverflow.com/questions/1000555
复制相似问题