sql-server-2005 – 寻求0x0B
发布时间:2021-03-14 09:04:02 所属栏目:编程 来源:网络整理
导读:从SQL列读取一些数据然后将其转换为 XML时出现此错误: “System.InvalidOperationException:XML文档中存在错误(182,16).— System.Xml.XmlException:”,十六进制值0x0B,是无效字符.” 很公平,也许数据格式不正确.除了,我怎样才能找到罪魁祸首? SELECT * f
从SQL列读取一些数据然后将其转换为 XML时出现此错误: “System.InvalidOperationException:XML文档中存在错误(182,16).—> System.Xml.XmlException:”,十六进制值0x0B,是无效字符.” 很公平,也许数据格式不正确.除了,我怎样才能找到罪魁祸首? SELECT * from Mytable where Column like '%' + char(0x0B)+'%' 返回空. (显然我尝试了所有%char,char,char%组合,以防万一) 解决方法终于找到了!.NET XML序列化程序在序列化时会转义无效字符,但是在反序列化之前它就是无法转义它. 因此,我必须搜索转义的& #xB以找到未转义的0x0B …严重的不是有趣的家伙! 所以这: SELECT * from Mytable where Column like '%' + '' + '%' 实际上会发现这个: <?xml version="1.0"?> <Hashtable><key>313_other_10</key><value></value></Hashtable> 虽然这看起来像有效的XML,但在以下情况下会抛出无效的字符异常: XmlSerializer xs = new XmlSerializer(Type.GetType(Hashtable)); StringReader stringReader = new StringReader(xml); obj = xs.Deserialize(stringReader); 非常感谢那些积极参与帮助的人!这是无价的帮助! (编辑:广西网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐