无法使用C#解析Xml

时间:2014-07-22 05:46:20

标签: asp.net xml xml-parsing

这是代码: -

public void TestXmlDocument()
  {
     StringBuilder output = new StringBuilder();
     XDocument document =  XDocument.Load("XmldataList.xml");

         #region Fetch All the Books 

         var books = from r in document.Descendants("book")
          select new 
              { 
                 Author = r.Element("author").Value,
                 Title = r.Element("title").Value,
                 Genere = r.Element("genre").Value,
                 Price = r.Element("price").Value,
                 PublishDate = r.Element("publish_date").Value,
                 Description = r.Element("description").Value,
              };
            foreach (var r in books)
            {
               Label3.Text=r.PublishDate + r.Title + r.Author;
            }
            Console.ReadKey(true);

            #endregion 

  }    

我收到错误

  

异常详细信息:System.IO.FileNotFoundException:找不到   文件'C:\ Program Files \ Common Files \ Microsoft   共享\ DevServer \ 10.0 \ XmldataList.xml”。

在行 -

  XDocument document =  XDocument.Load("XmldataList.xml");

2 个答案:

答案 0 :(得分:1)

您应该尝试指定XmldataList.xml的绝对路径:

XDocument document = XDocument.Load(@"C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0\XmldataList.xml");

此外,以管理员权限启动IDE可能会有所帮助。

答案 1 :(得分:1)

最好的方法是使用MapPath函数,如下所示:

String fullPath=MapPath("/XmldataList.xml");
XDocument.Load(fullPath);

否则,当您在实时服务器上推送网站时,您的路径可能会被破坏。 如果仍然有问题,请检查MapPath函数的输出,如果它是正确的,则可能是安全访问问题,您应该授予IIS对您的文件夹的完全访问权限。 请务必注意文件名,有时您的文件名与代码中的名称略有不同。