这个是我的XML文件
<?xml version="1.0" encoding="gb2312" ?>
<titlenodes> 
<titles>
<nodename>bbb</nodename>
<nodehref>aaaa</nodehref>
</titles>
</titlenodes>在ASP.net中我用这种方法读取时为什么不行啊?????????
代码如下:
string xmlpath="xmlfile/title.xml";
XmlDocument xml=new XmlDocument();
xml.LoadXml(Server.MapPath(xmlpath));
XmlNodeReader reader=new XmlNodeReader(xml);
while(reader.Read())
{
Response.Write(reader.Value.ToString());
}
报错信息:
“/readxml”应用程序中的服务器错误。
--------------------------------------------------------------------------------根级别上的数据无效。 行 1,位置 1。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Xml.XmlException: 根级别上的数据无效。 行 1,位置 1。源错误: 
行 25:  string xmlpath="xmlfile/title.xml";
行 26:  XmlDocument xml=new XmlDocument();
行 27:  xml.LoadXml(Server.MapPath(xmlpath));
行 28:  XmlNodeReader reader=new XmlNodeReader(xml);
行 29:  while(reader.Read())
 
但是在同样的环境下我用下面这种方法可以将xml内容读取,这到底是什么原因啊???请帮忙大哥大姐们.代码如下:
string xmlpath="xmlfile/title.xml";
FileStream fs;
fs=new FileStream(Server.MapPath(xmlpath),FileMode.Open);
DataSet ds=new DataSet();
ds.ReadXml(fs);
fs.Close();
this.DataGrid1.DataSource=ds;
this.DataGrid1.DataBind();

解决方案 »

  1.   

    string path=Server.MapPath("test.xml");
     XmlDocument xml = new XmlDocument();
     xml.Load(path);
     XmlElement root=xml.DocumentElement;
     XmlNodeReader reader = new XmlNodeReader(root);
     while(reader.Read()
     {
     }
    测试成功!
      

  2.   

    xml.LoadXml(Server.MapPath(xmlpath));
    不是LoadXml而是Load
      

  3.   

    XmlDocument xml=new XmlDocument();
    xml.Load(Server.MapPath ("")+"\\xmlfile\\title.xml");
    XmlNode child = xml.SelectSingleNode("/titlenodes/titles");
    if (child != null) 
    {
    XmlNodeReader nr = new XmlNodeReader(child );
    while (nr.Read() )
    Response.Write( nr.Value );
    }