• XML错误: 根级别上的数据无效 行1 位置1


    一个好好的xml,改动了一点内容,就出了这样的问题。

    格式没有错,却除了这样的问题,莫名其妙!

    百度之!

    一.trim()方法

    错误原因:“不加Trim的字符中多了一个"."从而导致xml出错”?。根据这里的方法:

    http://www.cnblogs.com/huangtailang/p/3850522.html

    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);
      }
    }

    但是依旧打不开文件,错误依旧。

    二、改用doc.Load()方法

     根据xuehuic这里的方法

    XmlDocument doc = new XmlDocument();
     doc.LoadXML("Config.XML");

    把loadXML函数改成load()函数就可以解决了。两个的用法有区别:

     LoadXml (): 该方法从字符串中读取   XML。 

    如  LoadXml("<book><title>C#</title></book>");
       

    Load ():  方法将文档置入内存中并包含可用于从每个不同的格式中获取数据的重载方法。

    如 Load(文件)

    连接:http://blog.csdn.net/xuehuic/article/details/6020202

    测试结果:成功,解决问题。

    三、疑惑?

    之前一直使用的xDoc.LoadXml(文件地址)方法,为何能正常使用呢?

    似乎不是说不能加载xml文件的,只是改动内容后无法加载了。

    版权声明:本博原创文章可以被转载,但是在未经本人许可前,不得用于任何商业用途或其他以盈利为目的的用途。如需转载,请在转载时声明作者、保留出处。本人保留对本文的一切权利。 作者:AllenRobin Blog:http://gisrsman.cnblogs.com
  • 相关阅读:
    C#中的Byte,String,Int,Hex之间的转换函数。
    js继承之原型继承
    node.js module初步理解
    手游热更新方案--Unity3D下的CsToLua技术
    像素迷踪,当Unity的Frame Debugger力不从心时
    Unity内存理解(转)
    Unity5的AssetBundle(二、加载&卸载)
    Sprite Atlas与Sprite Mask详解
    Unity2017新功能Sprite Atlas详解
    Util应用程序框架公共操作类(一):数据类型转换公共操作类(介绍篇)
  • 原文地址:https://www.cnblogs.com/GISRSMAN/p/4533323.html
Copyright © 2020-2023  润新知