public void Parse(string xml) { this.Items=new RssItemCollection(); XmlDocument xDoc=new XmlDocument(); try { //xDoc.LoadXml(xml); xDoc.LoadXml(xml.Trim()); } catch(Exception e) { throw new Exception("内容不符合标准",e); } }
加载XML时始终 根级别上的数据无效。 行1,位置1
在网上找了很久都没有结果 最后只有自己试试,Load前加了 xml=xml.Trim(); 通过了,但是xml前后都没有空格之类的符号 奇怪的错误,而且加载的xml 在IE下是不报错的。
不敢独享 望给同样经历的人一点参考
以上来自:http://hi.baidu.com/xsharkx/item/d2da2935cb6995f6a88428cc
个人解决办法:
之前使用的一个Xml文件只更改了几个字符再加载时就出现“根级别上的数据无效。 行 1,位置 1”的问题,虽然找到了以上的解决办法并解决了问题
但并不清楚是为什么?
看起来完全相同的字符串就一定相同吗??
复制下面的代码到chrome中Console中运行一下看看
1 var s='<?xml version="1.0" encoding="UTF-8"?>'; 2 var s='<?xml version="1.0" encoding="UTF-8"?>'; 3 4 alert('s.length='+s.length+' _s.length='+_s.length);
运行结果:
通过在Vs中调试发现不加Trim的字符中多了一个"."从而导致xml出错
解决办法:
1.在代码中加入Trim()清除多余的字符(推荐)
xDoc.LoadXml(xml.Trim());
2.自动清除多余的字符"."并在Xml文件中替换(此方法并不能完全避免此问题应该使用方法1) http://hi.baidu.com/xsharkx/item/d2da2935cb6995f6a88428cc http://www.cnblogs.com/XChWaad/p/3346875.html