none
XmlDocument.Load()问题 RRS feed

  • 问题

  • 问题描述:在一个类里有如下方法:
    public static bool GetValidAllow()
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load("./XMLValid.xml");

            int valid = Convert.ToInt16(xmlDoc.DocumentElement["Allow"].InnerText);

            return Convert.ToBoolean(valid);
        }

    程序运行到xmlDoc.Load("./XMLValid.xml")这句报错了。错误内容如下:
    未能找到文件“C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\IDE\XMLValid.xml”。

    但在另一台机器上,同样的程序,在这里不报错。我跟踪了下,得到的完整值是:file:///E:/亚明LabMIS/YM_LabMIS.root/YM_LabMIS/Web/XMLValid.xml。

    为什么会出这样的问题?XMLValid.xml这个文件是在页面的根目录下的。还请各位能帮忙看看是什么问题,如何解决?谢谢各位先:)


    zy
    2009年8月18日 2:46

答案

全部回复

  • 文件路径 错了
    xmlDoc.Load("../XMLValid.xml"); 少了一个点
    2009年8月18日 2:50
  • 谢谢mldark这么快的回复。但你说的不对。我试了,还是上面的错。原因不在少一个点上。


    zy
    2009年8月18日 3:02
  • 那么xmlDoc.Load("~/XMLValid.xml"); 试试
    注意文件名分区大小写 检查文件是不是存在
    2009年8月18日 3:06
  • xmlDoc.Load(Server.MapPath("~/XMLValid.xml")); 里面是否有子目录,看你的xml位置与程序文件的相对位置
    【孟子E章】
    2009年8月18日 3:30
    版主
  • xmlDoc.Load(System.Web.HttpContext.Current.Server.MapPath("~/XMLValid.xml"));
    【孟子E章】
    • 已标记为答案 张烨 2009年8月19日 0:49
    2009年8月18日 3:30
    版主
  • 你好如果你是在根目录可以通过
    xmlDoc.Load("~/XMLValid.xml");

    xmlDoc.Load(HostingEnvironment.ApplicationVirtualPath+"/XMLValid.xml");



    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年8月18日 3:33
    版主
  • 问题描述:在一个类里有如下方法:
    public static bool GetValidAllow()
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load("./XMLValid.xml");

            int valid = Convert.ToInt16(xmlDoc.DocumentElement["Allow"].InnerText);

            return Convert.ToBoolean(valid);
        }

    程序运行到xmlDoc.Load("./XMLValid.xml")这句报错了。错误内容如下:
    未能找到文件“C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\IDE\XMLValid.xml”。

    但在另一台机器上,同样的程序,在这里不报错。我跟踪了下,得到的完整值是:file:///E:/亚明LabMIS/YM_LabMIS.root/YM_LabMIS/Web/XMLValid.xml。

    为什么会出这样的问题?XMLValid.xml这个文件是在页面的根目录下的。还请各位能帮忙看看是什么问题,如何解决?谢谢各位先:)


    zy

    你的iis asp.net运行文件夹 在 C:\windows\system32\inetsrv  下 这个地方当然没有 xmlvald.xml

    必须用 server.mappath  来定位网站相对文件夹的绝对地址
    答案破千 马上就要到5星用户了 嘿嘿~~
    • 已建议为答案 tommycnj 2009年11月19日 12:31
    2009年8月18日 17:12
  • server.mappath()返回的路径中包含空格(文件夹命名时包含空格,可不可以啊)
    2009年9月24日 2:30
  • 可以


    恭喜自己5星用户达成
    2009年9月24日 16:25