我在保存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代替 - 但同样的交易。
我做错了什么?
答案 0 :(得分:1)
当您在Web应用程序中时,当前目录不是Web应用程序的根目录。它是IIS可执行文件所在的目录,因此位于Windows系统目录中的某个位置。
当然,您没有Web应用程序对该目录的写访问权限,因此当您尝试在那里创建文件时会遇到一些异常。
指定要创建的文件的完整路径。您可以使用MapPath
方法从虚拟路径获取文件的物理路径。例如:
string fileName = Server.MapPath("/xmldata/CarsXML.xml");
using (XmlWriter writer = XmlWriter.Create(fileName))
...