0

我一直在编写一个使用 XML 的数据库程序。每当程序启动并且在指定的路径中找不到 XML 文件时,它会生成以下内容:

<!--  Studnet Database  -->
<schoolDB>
    <Grades>
        <Grade10/>
        <Grade11/>
        <Grade12/>
    </Grades>
    <Employees/>
</schoolDB>

我希望程序在元素中添加一个element调用(提示用户输入从 10 到 12 的等级,然后将其解析为 Grade10 -> Grade12)。我写了这个: studentGrade*

    XDocument doc = XDocument.Load(prog.dbFile);
    doc.Element(toWriteGrade).Add(new XElement("student",
            new XElement("name", name),
            new XElement("age", age)));
    doc.Save(prog.dbFile);

当我运行它时,它给了我一个错误:

StudentClone1.exe 中发生“System.NullReferenceException”类型的未处理异常附加信息:对象引用未设置为对象的实例。

这里有什么问题?

4

1 回答 1

6

这意味着您没有正确选择成绩元素:

doc.Element(toWriteGrade) // this returns null

因此等级是元素的Grades元素,你应该这样查询它:

doc.Root.Element("Grades").Element(toWriteGrade)

或者(效率较低)您可以只查看文件中的所有元素:

doc.Descendants(toWriteGrade) 
于 2013-11-04T13:21:46.197 回答