恶心的XML之"根级别上的数据无效。 第 1 行,位置 1"
发布时间:2020-12-16 00:06:33 所属栏目:百科 来源:网络整理
导读:就是今天,做了一个功能,在一个弹出页面操作几个表的数据,形成一个临时DataTable,然后将它转换为XML,然后再return到父级页面 父级页面,再将XML解析成DataTable再进行相关操作。 恶心随之而来,再讲XML转换为DataTable的时候,总是报错“根级别上的数据
就是今天,做了一个功能,在一个弹出页面操作几个表的数据,形成一个临时DataTable,然后将它转换为XML,然后再return到父级页面 父级页面,再将XML解析成DataTable再进行相关操作。
恶心随之而来,再讲XML转换为DataTable的时候,总是报错“根级别上的数据无效。 第 1 行,位置 1",但是调试将xmlData参数直接写的时候, 不出错!
或许微软的错误提示已经很明确,最前边的字符有问题,但是我们感觉凡胎肉眼看到的就是<,没错啊! 然后百啊百,可能<的前边还有空格啊回车之类的,至于怎么就有这个了,不得而知。
那就想办法吧,找到xmlData的第一个<,然后截取<之后的所有字符串,然后在最前面+<
xmlData = "<" + xmlData.Substring(xmlData.IndexOf('<') + 1);
附完整代码:
XML转换DataSet方法 //将xml对象内容字符串转换为DataSet public static DataSet ConvertXMLToDataSet(string xmlData) { xmlData = "<" + xmlData.Substring(xmlData.IndexOf('<') + 1); StringReader stream = null; XmlTextReader reader = null; try { DataSet xmlDS = new DataSet(); stream = new StringReader(xmlData); //从stream装载到XmlTextReader reader = new XmlTextReader(stream); xmlDS.ReadXml(reader); return xmlDS; } catch (System.Exception ex) { throw ex; } finally { if (reader != null) reader.Close(); } }
DataSet转换XML方法
//将DataSet转换为xml对象字符串 public static string ConvertDataSetToXML(DataSet xmlDS) { MemoryStream stream = null; XmlTextWriter writer = null; try { stream = new MemoryStream(); //从stream装载到XmlTextReader writer = new XmlTextWriter(stream,Encoding.UTF8); //用WriteXml方法写入文件. xmlDS.WriteXml(writer); int count = (int)stream.Length; byte[] arr = new byte[count]; stream.Seek(0,SeekOrigin.Begin); stream.Read(arr,count); UTF8Encoding utf = new UTF8Encoding(); return utf.GetString(arr).Trim().Replace("n",""); } catch (System.Exception ex) { throw ex; } finally { if (writer != null) writer.Close(); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何在PostgreSQL中嵌入多行
- Caused by: org.jbpm.api.JbpmException: resource jbpm.cf
- Cocos2d-x游戏开发之骨骼动画详解-Spine
- 机房重构(5)——模板方法实现组合查询
- ruby – 什么是sinatra的控制者?
- Swift - what's the difference between metatype .Typ
- c# – 如何使用FileHelpers编写带头的CSV文件?
- UML关系(泛化,实现,依赖,关联(聚合,组合))
- c# – 如何使用.NET中的属性初始化FormCollection?
- c# – 无法进入并调试服务组件源代码