【问题标题】:Create blank XML File and then Append to it创建空白 XML 文件,然后追加到它
【发布时间】:2013-10-10 19:49:48
【问题描述】:

我正在用 C# 编写一个 Windows 窗体程序,我希望能够将信息保存到 XML 文件中。 当我第一次创建 XML 文件时,我只想能够添加声明

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

然后是我想要的根节点,称为“联系人”。

最终文件应如下所示:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Contacts>
    <Contact>
        <Name>name</Name>
        <Address>address</Address>
    <Contact>
<Contacts>

会有多个&lt;Contact&gt;&lt;/Contact&gt; 元素。

我遇到的问题是我第一次创建 XML 文件时。

我的 XML 操作在它们自己的类中。 这是创建文件的方法:

public void createFile()
    {
        if (!File.Exists(fileName))
        {
            //Populate with data here if necessary, then save to make sure it exists
            xmlFile = new XDocument(
                new XDeclaration("1.0", "utf-8", "yes"),
                new XComment("XML File for storing " + RootName));
            xmlFile.Save(FileName);
        }
    }

当我尝试运行它时,我得到一个 ArgumentNullException 是未处理的错误。

任何想法如何实际获取文件中的数据并将其保存? 谢谢

【问题讨论】:

  • 你考虑过调试吗?或者查看堆栈跟踪以查看哪个参数是 null。

标签: c# xml winforms linq-to-xml xelement


【解决方案1】:

您需要在文件中添加一个根元素:

xmlFile.Add( new XElement( "Contacts" ) );

尽管您收到的错误表明正在发生其他事情。也许Filename 为空?

【讨论】:

  • 我在新的 XDocument 语句之后添加了它,但我仍然收到错误。该文件永远不会被创建。似乎我必须用一些东西填充文件,但我不确定是什么。
  • xmlFile.Save(FileName) 抛出错误。我发现了问题,我从未设置 FileName,它是私有支持字段的公共访问器。
  • 呵呵,我当时猜的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-16
  • 2021-12-11
  • 1970-01-01
  • 2016-04-27
相关资源
最近更新 更多