关于Page_Load中Request.InputStream

vchalf_moon 2013-11-24 11:28:13

System.IO.StreamReader reader = new System.IO.StreamReader(Request.InputStream);
string text = reader.ReadToEnd();
try
{
XmlDocument px2 = new XmlDocument();
px2.Load(reader);
}
catch (System.Exception a2)
{
r = "1" + a2.Message;
}
try
{
XmlDocument px21 = new XmlDocument();
px21.Load(reader);
}
catch (System.Exception a3)
{
r = "2" + a3.Message;
}

结果就是 [2缺少根元素。]
小弟初学,不明白为什么第一次解释就正常,第二次就不行,
给人的感觉好像是只能load一次
...全文
139 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
vchalf_moon 2013-11-24
  • 打赏
  • 举报
回复
放弃了,直接用loadxml
vchalf_moon 2013-11-24
  • 打赏
  • 举报
回复
px2.Load(reader); reader.DiscardBufferedData(); px21.Load(reader); 仍然报错: 2缺少根元素。
vchalf_moon 2013-11-24
  • 打赏
  • 举报
回复
System.IO.StreamReader reader = new System.IO.StreamReader(Request.InputStream); string text = reader.ReadToEnd(); px2.Load(reader); 错误 px21.LoadXml(text);正确
threenewbee 2013-11-24
  • 打赏
  • 举报
回复
加一个reader.DiscardBufferedData(); 看看
vchalf_moon 2013-11-24
  • 打赏
  • 举报
回复
px2.LoadXml(text) px22.LoadXml(text) 正确 -------------------------- px2.Load(reader); px21.Load(reader);错误 -------------------------
vchalf_moon 2013-11-24
  • 打赏
  • 举报
回复
关键就是错误发生在第二次load中,我就郁闷了
vchalf_moon 2013-11-24
  • 打赏
  • 举报
回复
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[FromUser]]></FromUserName> <CreateTime>123456789</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[CLICK]]></Event> <EventKey><![CDATA[EVENTKEY]]></EventKey> </xml>

            System.IO.StreamReader reader = new System.IO.StreamReader(Request.InputStream);
            string text = reader.ReadToEnd();
            try
            {
                XmlDocument px2 = new XmlDocument();
                px2.Load(text);
            }
            catch (System.Exception a2)
            {
                r = "1" + a2.Message;
            }
            try
            {
                XmlDocument px21 = new XmlDocument();
                px21.Load(reader);
            }
            catch (System.Exception a3)
            {
                r = "2" + a3.Message;
            }
2缺少根元素。
threenewbee 2013-11-24
  • 打赏
  • 举报
回复
你的xml是怎样的。 xml必须有唯一的根元素 比如 <person id="p1"></person> <person id="p2"></person> 这就是不合法的,因为根元素多于一个 得写成: <people> <person id="p1"></person> <person id="p2"></person> </people>
vchalf_moon 2013-11-24
  • 打赏
  • 举报
回复
谢谢回复,但还是一样的错误提示
threenewbee 2013-11-24
  • 打赏
  • 举报
回复
px2.Load(reader); -> px2.Load(text);

110,545

社区成员

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

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

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