【问题标题】:C# Loading dates from XML fileC# 从 XML 文件加载日期
【发布时间】:2011-07-25 04:30:58
【问题描述】:

我有一个程序可以保存名称、文件路径、摘要和日期等信息。

一切正常保存,从文件中加载一切正常...除非我从文件中加载信息,不要进行任何更改并再次重新保存文件并重新加载,第一个日期似乎已损坏不知何故。我在编辑器中编辑了 xml 文件,一切似乎都很好。我必须更改列表中的第一个日期并在编辑器中重新保存。然后就可以正常加载了。

这是我仅保存日期部分的代码:

            using (XmlWriter serializer = XmlWriter.Create(saveFileDialog1.FileName))
            {

                serializer.Flush();
                serializer.WriteStartDocument();
                serializer.WriteStartElement("Items");

                serializer.WriteElementString("DRNumber", TextBox1.Text.ToString());
                serializer.WriteElementString("PicsPath", textBox3.Text.ToString());
                serializer.WriteElementString("DocPath", textBox4.Text.ToString());

            foreach (DateTime fname in date)
                {
                    serializer.WriteElementString("Date", fname.ToShortDateString());

                }
                serializer.WriteEndElement();

                serializer.WriteEndDocument();
                serializer.Flush();
                serializer.Close();
                FileInfo fi1 = new FileInfo(saveFileDialog1.FileName);
            }

这是将日期写入 XML 的最佳方式,还是我遗漏了什么?

【问题讨论】:

  • 我看不出 xml 文件的构建方式有什么问题。也许发布一个具有“损坏”日期的 xml 文件的示例?
  • 当您将数据保存到文件时是否保存正常(检查文件内容)?如果你手动制作好的xml并加载它,它加载正常吗?
  • 我同意上述 cmets,我看不出你所做的有什么问题...检查代码的保存/加载部分 - 很可能那里有问题。
  • ToShortDateString() 是文化敏感的。您是否尝试在生成 XML 的同一用户下的同一台机器上读取生成的 XML?如果答案是否定的,或者您的程序在其他用户的凭据下运行(例如,作为 SYSTEM 帐户下的 windows 服务) - 可能就是这种情况。
  • XML文件实际上是程序制作的,保存的很好。它可以在外部编辑器中打开。只要您更改程序(或外部 XML 编辑器)中的数据,它就可以很好地加载并且很好。但是,如果您加载它并重新保存它而不进行任何更改,它将无法正确加载第一组值。

标签: c# xml save


【解决方案1】:

您可以使用XElementXmlDocument API

XElement root = new XElement("Root",new XElement("Child", "child content"));
root.Save("Root.xml");

【讨论】:

  • 如何使用 xelement 添加数组列表?我尝试了以下方法,但我从列表中只得到一个日期:foreach (DateTime fname in date) { XElement root = new XElement("Root", new XElement("Date", fname.ToShortDateString())); root.Save("c:\\temp pic\\test.xml");
  • 没关系,我使用 root.Add 找到了它。
  • Aaannnddd 看起来 XElement 是要走的路!它工作正常!谢谢!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-03
  • 2011-06-20
  • 1970-01-01
相关资源
最近更新 更多