操作XML 报错:根级别上的数据无效 和 给定编码中的字符无效

  1. 根级别上的数据无效,解决如下:
  2. private void button1_Click(object sender, EventArgs e)
  3.         {
  4.             try
  5.             {
  6.                 XmlDocument doc = new XmlDocument();
  7.                 string file = @"D:/Books.xml";

  8.                 file = file.Trim();
  9.                 doc.LoadXml(file);

  10.             }
  11.             catch (XmlException ex)
  12.             {
  13.                 MessageBox.Show(ex.Message + "/r/n" + ex.StackTrace);
  14.             }            
  15.         }

前提是经过很检验,XML文件是合格并有效的。可一运行就就会出现“根级别上的数据无效”的错误,很久没弄明白,网上搜了一下,发现遇到这问题的还真不少。有的网友说LoadXml之前加上file = file.Trim();就解决了,试了还是不行。于是改用Load()方法,问题解决。再查Msdn,原来两个方法的用法不同。

    LoadXml (): 该方法从字符串中读取   XML。   LoadXml("<book><title>C#</title></book>");
    Load ():  方法将文档置入内存中并包含可用于从每个不同的格式中获取数据的重载方法。Load(文件)

(可能因为这两件方法都有一个参数为string的重载吧,于是理所当然的以后这两个方法混用了)。

    希望为同样错误困扰的网友有点点帮助,也让自己牢记。

 转自:http://blog.csdn.net/hdzdw/article/details/3152807

 

给定编码中的字符无效,解决如下:

 

我是直接新建txt文件然后把内容贴进去,保存后直接改文件名和后缀名,txt文件的编码是ANSI。所以如果想改正的话,也简单:用记事本打开文件,文件---->另存为---->对话框:编码---->utf-8。OK了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值