日期:2014-05-17  浏览次数:20889 次

C#读取xml文件,意外的 XML 声明。XML 声明必须是文档中的第一个节点并且在它之前不允许出现空白字符。 第 2 行,位置 3。
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

------解决方案--------------------
new DataSet().ReadXml()

DataSet能加载的飘过~
------解决方案--------------------

<!--  hbclpz_result:向客户端返回所申请的汇报材料对应的批注详细信息 --> 去掉
------解决方案--------------------
你修改下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/
------解决方案--------------------
string text = File.ReadAllText("test.xml").Replace("\r\n", "");
            text = Regex.Replace(text, @"<!-- *.* -->", "", RegexOptions.IgnoreCase);
            XmlDocument xmlDocument = new XmlDocument();
            xmlDocument.LoadXml(text);