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

nimalebi888 2013-07-03 10:29:00
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是固定的,不能修改
求大神帮忙,怎么处理?
...全文
1221 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
coobai 2013-07-03
  • 打赏
  • 举报
回复
哦,我回头再看了一下 原来还有 <!-- hbclpz_result:向客户端返回所申请的汇报材料对应的批注详细信息 -->
coobai 2013-07-03
  • 打赏
  • 举报
回复
引用 6 楼 nimalebi888 的回复:
[quote=引用 1 楼 coobai 的回复:]
new DataSet().ReadXml()

DataSet能加载的飘过~


不可以啊,DataSet还是报错,解析不了xml[/quote]

nimalebi888 2013-07-03
  • 打赏
  • 举报
回复
引用 7 楼 guwei4037 的回复:
string text = File.ReadAllText("test.xml").Replace("\r\n", "");
            text = Regex.Replace(text, @"<!-- *.* -->", "", RegexOptions.IgnoreCase);
            XmlDocument xmlDocument = new XmlDocument();
            xmlDocument.LoadXml(text);
这个方法应该可以,修改后在读xml,还有没有更好点的办法了?java读这个文件没有问题,C#就不行,郁闷,要是没有好的解决方案就定这个了~~~~
全栈极简 2013-07-03
  • 打赏
  • 举报
回复
string text = File.ReadAllText("test.xml").Replace("\r\n", "");
            text = Regex.Replace(text, @"<!-- *.* -->", "", RegexOptions.IgnoreCase);
            XmlDocument xmlDocument = new XmlDocument();
            xmlDocument.LoadXml(text);
nimalebi888 2013-07-03
  • 打赏
  • 举报
回复
引用 1 楼 coobai 的回复:
new DataSet().ReadXml() DataSet能加载的飘过~
不可以啊,DataSet还是报错,解析不了xml
nimalebi888 2013-07-03
  • 打赏
  • 举报
回复
引用 2 楼 bdmh 的回复:
把 <!-- hbclpz_result:向客户端返回所申请的汇报材料对应的批注详细信息 --> 去掉
xml文件是其他系统传过来的,不能修改,只能自己处理
nimalebi888 2013-07-03
  • 打赏
  • 举报
回复
引用 3 楼 lizhi3186575 的回复:
你修改下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/
xml文件是其他系统传过来的,不能修改,只能自己处理
人生导师 2013-07-03
  • 打赏
  • 举报
回复
你修改下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/
bdmh 2013-07-03
  • 打赏
  • 举报
回复
把 <!-- hbclpz_result:向客户端返回所申请的汇报材料对应的批注详细信息 --> 去掉
coobai 2013-07-03
  • 打赏
  • 举报
回复
new DataSet().ReadXml() DataSet能加载的飘过~

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧