linqToSql + linqToXMl - xml文件中的备份表

时间:2011-04-22 23:13:03

标签: c# linq linq-to-xml

我的问题是我有XElements列表,老实说我不知道​​我该怎么做才能将它保存到文件中。

我的方法:

            XDocument xml = new XDocument();
        List<XElement> list = new List<XElement>();
        foreach (Visit v in BlogDB.Visits)
        {
            list.Add(new XElement("Visit",
                                        new XElement("id", v.id),
                                        new XElement("SessionID", v.SessionID),
                                        new XElement("StartDate", v.StartDate),
                                        new XElement("Date", v.Date),
                                        new XElement("IPAddress", v.IPAddress),
                                        new XElement("WhereIsHe", v.WhereIsHe),
                                        new XElement("WhoIs", v.WhoIs)));

        }

现在怎么样?如何将此列表添加到xml文件? 我试过了:

xml.Add(from el in list select (XElement)el); 

但它不起作用。

3 个答案:

答案 0 :(得分:1)

在你的情况下:

        List<XElement> list = new List<XElement>() { new XElement("first"), new XElement("Second") };
        XElement root = new XElement("root", list);
        XDocument doc = new XDocument();
        doc.Add(root);  // add it later to prevent the error mentioned below.
        doc.Save(Console.Out); // put in here the file name or Console.Out to see the contents directly in your window.

要创建有效的Xml文档,您需要将根节点添加到Xml文档中。

答案 1 :(得分:1)

将XElements列表添加到Xdocument,然后在文档上调用Save()。

也许是这样的。

XDocument xml = new XDocument(
   BlogDB.Visits.Select(v=>new XElement("Visit",
      new XElement("id", v.id),
      new XElement("SessionID", v.SessionID),
      new XElement("StartDate", v.StartDate),
      new XElement("Date", v.Date),
      new XElement("IPAddress", v.IPAddress),
      new XElement("WhereIsHe", v.WhereIsHe),
      new XElement("WhoIs", v.WhoIs))));
xml.Save("filename.xml");

答案 2 :(得分:0)

您已在文档中添加了元素。要将此文档保存到文件,您需要调用文档的Save方法:

xml.Save