XmlDocument doc = new XmlDocument();
doc.Load(xmlPath);
报错:
意外的 XML 声明。XML 声明必须是文档中的第一个节点并且在它之前不允许出现空白字符。 第 2 行,位置 3。xml文件如下:
<!--  hbclpz_result:向客户端返回所申请的汇报材料对应的批注详细信息 -->
<?xml version="1.0" encoding="utf-8"?>
<pz>
    <p1/>
    <p2/>
</pz>去掉第一行的注释就没问题,但是xml是固定的,不能修改
求大神帮忙,怎么处理?C#XML.net

解决方案 »

  1.   

    new DataSet().ReadXml()DataSet能加载的飘过~
      

  2.   


    <!--  hbclpz_result:向客户端返回所申请的汇报材料对应的批注详细信息 --> 去掉
      

  3.   

    你修改下XML编码方式,如:XDocument xmlDoc = null;using (StreamReader oReader = new StreamReader(inFileName, Encoding.GetEncoding("ISO-8859-1"))) {
        xmlDoc = XDocument.Load(oReader);
    }具体信息可以参考下面的链接:
    http://forums.asp.net/t/1775717.aspx/
      

  4.   


    xml文件是其他系统传过来的,不能修改,只能自己处理
      

  5.   

    xml文件是其他系统传过来的,不能修改,只能自己处理
      

  6.   


    不可以啊,DataSet还是报错,解析不了xml
      

  7.   

    string text = File.ReadAllText("test.xml").Replace("\r\n", "");
                text = Regex.Replace(text, @"<!-- *.* -->", "", RegexOptions.IgnoreCase);
                XmlDocument xmlDocument = new XmlDocument();
                xmlDocument.LoadXml(text);
      

  8.   


    这个方法应该可以,修改后在读xml,还有没有更好点的办法了?java读这个文件没有问题,C#就不行,郁闷,要是没有好的解决方案就定这个了~~~~
      

  9.   


    不可以啊,DataSet还是报错,解析不了xml
      

  10.   

    哦,我回头再看了一下  原来还有  <!--  hbclpz_result:向客户端返回所申请的汇报材料对应的批注详细信息 -->