首页 > 代码库 > 根级别上的数据无效。 行 1,位置 1

根级别上的数据无效。 行 1,位置 1

<style></style>
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);}}
View Code

加载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+‘\r\n_s.length=‘+_s.length);
View Code
运行结果:
 
通过在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