【问题标题】:XML does not get saved in asp.netXML 没有保存在 asp.net 中
【发布时间】:2014-12-04 21:07:28
【问题描述】:

我在保存 xml 文件时遇到问题。 我使用这个 XMLwriter :

 using (XmlWriter writer = XmlWriter.Create("CarsXML.xml"))
            {
                writer.WriteStartDocument();
                writer.WriteStartElement("CarsXml");
                foreach (Car item in cars)
                {
                    writer.WriteStartElement("Car");
                    writer.WriteElementString("Brand", item.Brand);
                    writer.WriteElementString("Type", item.Type);
                    writer.WriteElementString("Price", item.Price);
                    writer.WriteElementString("Effect", item.Effect);
                    writer.WriteElementString("Year", item.year);
                    writer.WriteEndElement();
                }
                writer.WriteEndElement();
                writer.WriteEndDocument();
                writer.Close();

        }

看起来不错吧?没有编译错误.. 我也试过这个只是为了测试:

XDocument doc = new XDocument(
    new XElement("Root",
        new XElement("Child", "content")
    )
);
            doc.Save("Root.xml");

仍然没有运气.. `已经在控制台应用程序中尝试过这个,它可以工作,所以代码必须没问题.. 我也尝试过使用我在某处找到的一段代码 - 改用 XmlDocument - 但它的处理相同。

我做错了什么?

【问题讨论】:

  • 究竟是什么问题?
  • 好吧,我本来可以更具体一点.. xml 文件不会在任何地方保存/存储。 Guffa 回答修复了它。

标签: asp.net xmlwriter


【解决方案1】:

当您在 Web 应用程序中时,当前目录不是 Web 应用程序的根目录。它是 IIS 可执行文件所在的目录,因此它位于 Windows 系统目录中的某个位置。

当然,您没有从 Web 应用程序对该目录的写入权限,因此当您尝试在那里创建文件时会遇到一些异常。

指定要创建的文件的完整路径。您可以使用MapPath 方法从虚拟路径获取文件的物理路径。示例:

string fileName = Server.MapPath("/xmldata/CarsXML.xml");

using (XmlWriter writer = XmlWriter.Create(fileName))
  ...

【讨论】:

  • 谢谢 :) 成功了,我想我还有很多东西要学。如果可以的话,我会支持你,但我的评分很低。
猜你喜欢
  • 2016-01-01
  • 2014-03-26
  • 1970-01-01
  • 2017-12-06
  • 2011-06-23
  • 2014-07-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多